Solution au problème selon lequel le système php ne prend pas en charge mssql

藏色散人
Libérer: 2023-03-12 12:58:01
original
1899 Les gens l'ont consulté

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.

Solution au problème selon lequel le système php ne prend pas en charge mssql

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

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)); 
} 
?>
Copier après la connexion

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

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 = &#39;&#39;; 
$dbuser = &#39;&#39;; //你的mssql用户名 
$dbpass = &#39;&#39;; //你的mssql密码 
$dbname = &#39;&#39;; //你的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[&#39;id&#39;]   //?取字段值 
… 
}
Copier après la connexion

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;
   }
?>
Copier après la connexion

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

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

————————————————

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

———————————————————

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));
}
?>
Copier après la connexion

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!

É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