Maison > développement back-end > Problème PHP > Que faire si php ne parvient pas à se connecter à mssql

Que faire si php ne parvient pas à se connecter à mssql

藏色散人
Libérer: 2023-03-14 17:08:01
original
2301 Les gens l'ont consulté

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.

Que faire si php ne parvient pas à se connecter à mssql

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:
Copier après la connexion

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.
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal