Maison >développement back-end >Problème PHP >Solution au problème selon lequel le système php ne prend pas en charge mssql
Solution au problème que php ne prend pas en charge mssql : 1. Téléchargez "SQLSRV20.EXE" ; 2. Extrayez le fichier dans le dossier d'extension php ext ; 3. Modifiez le fichier php.ini 4. Enregistrez et redémarrez Apache.
L'environnement d'exploitation de cet article : système Windows7, version php5.3, ordinateur DELL G3
Solution au problème que le système php ne prend pas en charge mssql, et la solution au problème que php5.3 Impossible de se connecter à la base de données mssql
Cet article décrit les exemples de solution au problème selon lequel php5.3 ne peut pas se connecter à la base de données mssql.
L'analyse est la suivante :
Depuis php5.3, le système ne prend pas en charge la connexion de la fonction mssql_connect. Dans le passé, j'ai également dit qu'elle pouvait être implémentée en utilisant l'interface com. le problème que php5.3 ne peut pas se connecter à la base de données mssql.
Sous le système Windows, les versions supérieures à PHP5.3 ne prennent plus en charge l'extension mssql.
Premier http://msdn.microsoft.com/en-us/sqlserver/ff657782 .aspx, cliquez sur l'obtenir pour télécharger SQLSRV20.EXE.
Extrayez le fichier dans le dossier d'extension php ext, ouvrez php.ini et ajoutez à la fin :
Le code est le suivant :
[PHP_PDO_SQLSRV] extension=php_pdo_sqlsrv_53_nts_vc6.dll [PHP_SQLSRV] extension=php_sqlsrv_53_nts_vc6.dll
Redémarrez Apache après l'enregistrement Ci-joint un exemple de connexion php simple, le code est le suivant. suit :
Le code est le suivant :
<?php $serverName = "(127.0.0.1)"; $connectionInfo = array( "UID"=>"root", "PWD"=>"root2010", "Database"=>"master"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.n"; } else { echo "Connection could not be established.n"; die( print_r( sqlsrv_errors(), true)); } ?>
J'utilise le package d'installation intégré wamp5.1 et je l'ai testé sur Windows Server 2008. Le test sur php5.4 ou supérieur n'a pas réussi.
Si vous utilisez cette extension pour vous connecter au serveur SQL Server 2005 ou supérieur (tel que SQL Server 2008), vous devez d'abord installer SQL Server Native Client sur la machine : http://download.microsoft.com/download/0/E/6/0E67502A -22B4-4C47-92D3-0D223F117190/sqlncli .msi
Cette extension ajoute une série de fonctions commençant par sqlsrv_ à PHP. La référence de la fonction est la suivante :
Le code est le suivant :
sqlsrv_begin_transaction sqlsrv_cancel sqlsrv_client_info sqlsrv_close sqlsrv_commit sqlsrv_configure sqlsrv_connect sqlsrv_errors sqlsrv_execute sqlsrv_fetch sqlsrv_fetch_array sqlsrv_fetch_object sqlsrv_fetch_metadata sqlsrv_free_stmt sqlsrv_get_config sqlsrv_get_field sqlsrv_has_rows sqlsrv_next_result sqlsrv_num_fields sqlsrv_num_rows sqlsrv_prepare sqlsrv_query sqlsrv_rollback sqlsrv_rows_affected sqlsrv_send_stream_data sqlsrv_server_info
Pour des instructions plus détaillées, il y a SQLServerDriverForPHP.chm dans le fichier auto-extractible à l'instant. Vous pouvez trouver le nœud de référence API dans le fichier d'aide après l'avoir ouvert
Regardez une autre méthode de connexion odb, le code est le suivant :
Le code est le suivant. suit :
$dbhost = ''; $dbuser = ''; //你的mssql用户名 $dbpass = ''; //你的mssql密码 $dbname = ''; //你的mssql库名 $connect=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass"); $sql="select * from content"; $exec=odbc_exec($connect,$sql); while($row = (odbc_fetch_array($exec))) { $row['id'] //?取字段值 … }
Apprentissage recommandé : « Tutoriel vidéo PHP »
Introduction connexe :
1 Les étapes pour que php5.3 se connecte avec succès à MSSQL via PDO sont brièvement résumées comme suit :
1. pilotes pour php pour le serveur SQL (il existe actuellement des versions 2.0 et 3.0, qui sont divisées respectivement en versions ts et nts. Vous pouvez utiliser phpinfo() Confirmez que Thread Safety:enable dans est ts, veuillez vous référer au manuel du pilote pour plus de détails)
2. Après avoir copié le pilote dans le dossier ext du dossier php, modifiez l'extension php.ini extension=php_pdo_sqlsrv_53_ts_vc6.dll
3. Téléchargez l'installation de Microsoft SQL Server 2008 R2 Native Client
Code de test :
<?php try { $hostname = "192.168.1.100"; $dbname = "Northwind"; $username = "sa"; $pwd = "pwd100"; $dsn="sqlsrv:Server=$hostname;database=$dbname"; $conn = new PDO ($dsn,$username,$pwd); $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); echo "mssql database connnection sucessed!"; } catch (PDOException $e) { echo "Failed to get DB handle: " . $e->getMessage() . "\n"; exit; } ?>
2. . Sous le système Windows, PHP5.3 et les versions supérieures ne prennent plus en charge l'extension mssql, donc si vous devez communiquer avec le serveur SQL, vous devez vous rendre sur http://msdn.microsoft com/en-us/sqlserver/ff657782. aspxDownload Le pilote SQL Server pour PHP fourni par Microsoft. Il s'agit d'un fichier auto-extractible. Après décompression, vous obtiendrez les fichiers suivants :
php_sqlsrv_52_nts_vc6.dll php_sqlsrv_52_ts_vc6.dll php_sqlsrv_53_nts_vc6.dll php_sqlsrv_53_nts_vc9.dll php_sqlsrv_53_ts_vc6.dll php_sqlsrv_53_ts_vc9.dll php_sqlsrv_license.rtf SQLServerDriverForPHP.chm SQLServerDriverForPHP_Readme.htm
Parmi eux, 52 et 53 représentent les versions de PHP 5.2 Indique l'utilisation d'Apache comme serveur Web, vc9 signifie l'utilisation de IIS comme serveur Web. .
Selon votre configuration, copiez le fichier DLL correspondant dans le dossier ext du répertoire d'installation de php. Ensuite, ouvrez php.ini et ajoutez les instructions suivantes pour ouvrir les extensions php_sqlsrv et php_pdo_sqlsrv :
——————— ——— ——————————–
[PHP_PDO_SQLSRV] extension=php_pdo_sqlsrv_53_ts_vc6.dll [PHP_SQLSRV] extension=php_sqlsrv_53_ts_vc6.dll
————————————————
Le 53 ici signifie php5.3 Si le vôtre est la version 5.2, juste. Remplacez par 52. Si votre version de PHP est thread-safe, alors il devrait y avoir un php5ts.dll dans votre répertoire d'installation PHP, correspondant aux deux lignes d'instructions ici. S'il s'agit de php5nts.dll, alors l'instruction ci-dessus devrait être :
——————————————————————
[PHP_PDO_SQLSRV] extension=php_pdo_sqlsrv_53_nts_vc6.dll [PHP_SQLSRV] extension=php_sqlsrv_53_nts_vc6.dll
———————————————————
Dans le format compressé package Vous pouvez vérifier soigneusement les fichiers dll pour chaque version.
Après avoir activé l'extension, redémarrez Apache pour pouvoir vous connecter à sqlserver. Mais il y a encore une chose à noter si vous n'avez pas installé Microsoft SQL Server 2008 R2 Native Client, vous devez vous rendre sur http://msdn. microsoft.com/en-us Téléchargez et installez /library/cc296170(SQL.90).aspx, car ce package d'extension de Microsoft nécessite cette prise en charge.
Une fois que tout est en place, vous pouvez écrire du code php. Si vous avez téléchargé le pilote SQL Server pour PHP, il y a un document d'aide dans le dossier décompressé. Vous pouvez facilement trouver des exemples. Voici le webmaster présentant un exemple simple :
.<?php //本地测试的服务名 $serverName = “(127.0.0.1)”; //使用sql server身份验证,参数使用数组的形式,一次是用户名,密码,数据库名 //如果你使用的是windows身份验证,那么可以去掉用户名和密码 $connectionInfo = array( “UID”=>”root”, “PWD”=>”root2010″, “Database”=>”master”); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo “Connection established.\n”; } else { echo “Connection could not be established.\n”; die( print_r( sqlsrv_errors(), true)); } ?>
Si la connexion échoue, redémarrez le serveur SQL et réessayez.
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!