Maison > Article > développement back-end > Que faire si php ne parvient pas à se connecter à mssql
Solution à l'échec de connexion de PHP à mssql : 1. Recherchez extension=php_mssql.dll dans le fichier php.ini et supprimez le point-virgule précédent ; 2. Copiez le fichier php_mssql.dll dans le répertoire "c:/windows/system32 ; /" Répertoire Suivant ; 3. Redémarrez iis.
L'environnement d'exploitation de cet article : système Windows7, version PHP5, ordinateur DELL G3
Que dois-je faire si PHP ne parvient pas à se connecter à mssql ?
À propos de la solution selon laquelle PHP ne peut pas se connecter à la base de données MSSQL :
extension de serveur SQL de base de données PHP sqlserver server
J'ai reçu un problème aujourd'hui pour accéder aux données de sqlserver2000 sur l'environnement de plateforme de php5+iis6+mysql5, et le résultat a été découvert lors de l'exécution. Il y a une erreur lorsque PHP se connecte à la base de données mssql distante. Le code d'erreur est le suivant :
Warning: mssql_connect(): Unable to connect to server:
En y réfléchissant, il n'y avait aucun problème avant. Plus tard, j'ai cherché sur Internet et trouvé un article, seulement pour découvrir que le serveur doit installer mssql pour pouvoir utiliser php pour se connecter à mssql. À l'origine, je n'avais pas besoin d'utiliser mssql sur le nouveau serveur, mais maintenant je l'ai. Je n'ai pas d'autre choix que de l'étendre. Après avoir étendu mssql, il n'y aura aucun problème.
Méthode d'extension :
1. Recherchez
dans le fichier c:/windows/php.ini ; extension=php_mssql.dll et supprimez le point-virgule devant
Recherchez
extension_dir = "./" Mettez la bibliothèque d'extension Changez le répertoire en répertoire de la bibliothèque php, tel que : extension_dir = "c:/php/ext"
2 Copiez le fichier php_mssql.dll dans le répertoire c:/windows/system32/
3. . Redémarrez iis.
Ce qui suit est un article que j'ai trouvé.
Configuration php :
Définissez comme suit dans le fichier php.ini, recherchez
;extension=php_mssql.dll Supprimez le point-virgule devant
Recherchez extension_dir = d:/extension/
Il se peut que ce soit dans votre php. ini Au lieu de d:/extension/
Changez le chemin où se trouve php_mssql.dll sous le répertoire extensions sous le répertoire d'installation de php, si vous ne l'avez pas déplacé vers un autre endroit (en supposant que votre chemin d'installation php est d:/ php)
Changez-le simplement en extension_dir=d:/php/extensions/
Puis redémarrez le serveur Web
C'est facile à faire, mais après avoir terminé ces paramètres, il ne peut toujours pas être connecté. Le message d'erreur est le suivant. :
Erreur de connexion à la base de données MS SQL Server ! Veuillez vérifier si les paramètres de la variable hôte de la base de données sont corrects !!!
J'ai vérifié les paramètres de la variable hôte encore et encore, et il n'y a eu aucun problème avec ces paramètres et j'ai navigué sur le Web. trouvé le point suivant Indices :
php.com资料: I am trying to connect to SQL Server 2000 from PHP I bumped to following warning: Warning: mssql_connect(): Unable to connect to server: SERVER/Portal ....... on line 5 on line 5 there is: $db_connect = mssql_connect('SERVER/Portal', 'sa', 'my_passwd'); I did the following 1.enabled php_mssql.dll extension in PHP.ini 2.every dll is in proper place(System32 or PHP folder),including ntwdblib.dll I search lots of profile throught web ,but no one give me proper answer to resolve it. after a few hour ,I found the problem was caused by ntwdblib.dll ,which version is 7.00.839 ,when I replaced old ntwdblib.dll with the new ntwdblib.dll ,which version is 8.00.194 ,all problem are solved. We had some, read A LOT, of problems with MSSQL under Windows 2003. We had 2 the same windows, php, php-ini, everything machines but only one could connect. Unable to connect was the error message. Finnaly we checked the version of ntwdblib.dll and the one distributed with PHP was 7.00.... and the version of the one on the SQL Server install was 8.00.... so we copied this one in the php and apache dir and it worked.
Le problème a été trouvé de cette manière. Le problème était que ntwdblib.dll
La fonction principale de ntwdblib.dll est de fournir des services de connexion au serveur SQL.
La version de PHP que j'utilise est la 5.25. Dans le windows/system32/ du serveur sur lequel il est installé, j'ai trouvé que la version du fichier ntwdblib.dll est 2000.2.8.0. Cette version prend en charge SQL Server 7.0, car lors de l'installation. PHP Écrasez tous les fichiers sous les dll dans le répertoire système
, donc lorsque je l'utiliserai pour me connecter au serveur SQL 2000, je ne pourrai bien sûr pas me connecter.
Plus tard, j'ai découvert que la version de ntwdblib.dll était 2000.80.2039.0 sur un serveur sur lequel SQL Server 2000 était installé normalement. J'ai copié ce fichier pour écraser la version précédente. Après avoir redémarré le serveur, tout était normal.
Supplément : si le nom de la base de données commence par un nombre, il sera également indiqué qu'elle ne peut pas être ouverte pour le moment, c'est très simple. Mettez le nom de la base de données entre crochets [ ]. réécrit en [123bbs], cela ne fonctionnera pas. De plus, cette situation se produira également si le nom de votre base de données est en conflit avec les mots réservés dans SQL Server. Vous pouvez également le résoudre en utilisant des crochets.
Enfin, le problème de l'incapacité de PHP à se connecter correctement au serveur SQL 2000 a finalement été résolu. Même si cela a pris plus d'une demi-journée, la récolte était toujours excellente. Le publier maintenant permettra également d'éviter les frères qui rencontrent le même problème. faire quelques détours.
Enfin, si votre ordinateur MSSQL cible est équipé d'un pare-feu, veuillez ouvrir le port 1433, en particulier pour les systèmes Windows XP !
Après avoir lu les informations ci-dessus, j'ai demandé à mon ami qui a installé sqlserver2000 de m'envoyer le fichier "ntwdblib.dll". Mon test local a réussi, mais lorsque je l'ai téléchargé sur le serveur, le résultat a été que info() n'a pas fonctionné. avoir l'extension mssql. Pourquoi le fichier déjà chargé manquait-il ? , en comparant le fichier php.ini avec le fichier local, il n'y a fondamentalement aucune différence, mais il ne peut pas être développé localement.
Finalement, il a été constaté que le problème venait toujours de la version de "ntwdblib.dll" et j'ai trouvé une version supérieure de "ntwdblib.dll" pour la remplacer.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!