Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für das Problem, dass das PHP-System MSSQL nicht unterstützt

Lösung für das Problem, dass das PHP-System MSSQL nicht unterstützt

藏色散人
藏色散人Original
2021-09-11 10:16:341844Durchsuche

Lösung für das Problem, dass PHP MSSQL nicht unterstützt: 1. Laden Sie „SQLSRV20.EXE“ herunter. 2. Extrahieren Sie die Datei in den PHP-Erweiterungsordner ext. 4. Speichern Sie und starten Sie Apache neu.

Lösung für das Problem, dass das PHP-System MSSQL nicht unterstützt

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP5.3-Version, DELL G3-Computer

Lösungen für das Problem, dass das PHP-System MSSQL nicht unterstützt, Lösungen für das Problem, dass PHP5.3 keine Verbindung herstellen kann zur MSSQL-Datenbank

Ein Beispiel in diesem Artikel Lösung für das Problem, dass PHP5.3 keine Verbindung zur MSSQL-Datenbank herstellen kann.

Die Analyse lautet wie folgt:

Seit PHP5.3 unterstützt das System die Verbindung mit der Funktion mssql_connect nicht. In der Vergangenheit habe ich auch gesagt, dass dies über die COM-Schnittstelle erreicht werden kann Das Problem, dass PHP5.3 keine Verbindung zur MSSQL-Datenbank herstellen kann.

Unter Windows-Systemen unterstützen Versionen über PHP5.3 die MSSQL-Erweiterung nicht mehr Klicken Sie auf .aspx, um es herunterzuladen, um SQLSRV20.EXE herunterzuladen.

Extrahieren Sie die Datei in den PHP-Erweiterungsordner ext, öffnen Sie php.ini und fügen Sie am Ende hinzu:

Der Code lautet wie folgt:

[PHP_PDO_SQLSRV] 
extension=php_pdo_sqlsrv_53_nts_vc6.dll 
[PHP_SQLSRV] 
extension=php_sqlsrv_53_nts_vc6.dll

Starten Sie Apache nach dem Speichern neu. Im Anhang finden Sie ein einfaches PHP-Verbindungsbeispiel. Der Code lautet wie folgt folgt:

Der Code lautet wie folgt:

<?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)); 
} 
?>

Ich verwende das integrierte Installationspaket wamp5.1 und habe es auf Windows Server 2008 getestet. Der Test auf PHP5.4 oder höher war nicht erfolgreich.

Wenn Sie diese Erweiterung verwenden Um eine Verbindung zu SQL Server 2005 oder höher (z. B. SQL Server 2008) herzustellen, müssen Sie außerdem zuerst SQL Server Native Client auf dem Computer installieren: http://download.microsoft.com/download/0/E/6/0E67502A -22B4-4C47-92D3-0D223F117190/sqlncli .msi

Diese Erweiterung fügt PHP eine Reihe von Funktionen hinzu, die mit sqlsrv_ beginnen. Die Funktionsreferenz lautet wie folgt:

Der Code lautet wie folgt:

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

Für detailliertere Anweisungen: In der selbstextrahierenden Datei befindet sich gerade SQLServerDriverForPHP.chm. Sie können es in der Hilfedatei finden und auf den API-Referenzknoten klicken. Schauen Sie sich eine andere Odb-Verbindungsmethode an. Der Code lautet wie folgt wie folgt:

$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;]   //?取字段值 
… 
}

Empfohlenes Lernen: „

PHP-Video-Tutorial

Zugehörige Einführung:

1. Die Schritte für die erfolgreiche Verbindung von PHP5.3 mit MSSQL über PDO werden wie folgt kurz zusammengefasst:

1 Microsoft-Treiber für PHP für SQL Server (derzeit gibt es 2.0- und 3.0-Versionen, die jeweils in ts- und nts-Versionen unterteilt sind. Sie können phpinfo() verwenden. Bestätigen Sie, dass Thread Safety:enable in ts ist. Weitere Informationen finden Sie im mitgelieferten Handbuch


2. Nachdem Sie den Treiber in den ext-Ordner des PHP-Ordners kopiert haben, ändern Sie die php.ini-Erweiterung extension=php_pdo_sqlsrv_53_ts_vc6.dll

3. Laden Sie den Microsoft SQL Server 2008 R2 Native Client-Installationscode herunter :

<?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. Unter Windows unterstützen PHP5.3 und höhere Versionen die MSSQL-Erweiterung nicht mehr. Wenn Sie also mit dem SQL-Server kommunizieren müssen, müssen Sie zu http://msdn.microsoft.com/en-us gehen /sqlserver/ff657782.aspxLaden Sie den von Microsoft bereitgestellten SQL Server-Treiber für PHP herunter. Dies ist eine selbstextrahierende Datei. Nach der Dekomprimierung erhalten Sie die folgenden Dateien:

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

Darunter stellen 52 und 53 die Verwendung von Apache als Webserver dar, vc9 bedeutet die Verwendung von IIS als Webserver .

Kopieren Sie entsprechend Ihrer Konfiguration die entsprechende DLL-Datei in den ext-Ordner des PHP-Installationsverzeichnisses und fügen Sie die folgenden Anweisungen hinzu, um die Erweiterungen php_sqlsrv und php_pdo_sqlsrv zu öffnen:

——————— ——— ——————————–

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_ts_vc6.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_ts_vc6.dll

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

Die 53 bedeutet hier PHP5.3. Wenn Ihre Version 5.2 ist, nur Wechseln Sie zu 52. Wenn Ihre PHP-Version threadsicher ist, sollte sich in Ihrem PHP-Installationsverzeichnis eine php5ts.dll befinden, die den beiden Anweisungszeilen hier entspricht. Wenn es sich um php5nts.dll handelt, sollte die obige Anweisung lauten:

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

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_nts_vc6.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_nts_vc6.dll

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

Im Komprimierten Paket Sie können die DLL-Dateien für jede Version sorgfältig überprüfen.

Nachdem Sie die Erweiterung aktiviert haben, starten Sie Apache neu, damit Sie eine Verbindung zum SQL Server herstellen können. Es gibt jedoch noch etwas zu beachten: Wenn Sie Microsoft SQL Server 2008 R2 Native Client nicht installiert haben, müssen Sie zu http://msdn gehen. microsoft.com/en-us Laden Sie /library/cc296170(SQL.90).aspx herunter und installieren Sie es, da dieses Erweiterungspaket von Microsoft diese Unterstützung erfordert.

Sobald alles fertig ist, können Sie PHP-Code schreiben. Im entpackten Ordner finden Sie ein Hilfedokument. Hier finden Sie ein einfaches Beispiel:

<?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));
}
?>

Wenn die Verbindung nicht erfolgreich ist, starten Sie den SQL-Server neu und versuchen Sie es erneut.

Das obige ist der detaillierte Inhalt vonLösung für das Problem, dass das PHP-System MSSQL nicht unterstützt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn