PHP unterstützt natürlich MySQL, aber manchmal möchte ich, dass es auf SQL Server zugreift. Was soll ich tun?
Ich habe kürzlich einige Informationen gefunden und mehrere Situationen erfolgreich getestet, in denen PHP auf SQLSvr zugreift. Aus Zeitgründen habe ich keine weiteren verschiedenen Umgebungen getestet:
Testumgebung: Win7 x64 SP1, IIS 7.5, Apache 2.4 32-Bit-Version, PHP 5.2.6 Win32, PHP 5.6.11 Win32 TS (Thread-sichere Version)
Hinweis: Da es für den Treiber „Microsoft Drivers for PHP for SQL Server“ derzeit nur eine 32-Bit-Version gibt, wird die Verwendung von PHP 64-Bit nicht empfohlen, wenn Sie eine SQL Server-Datenbank verwenden Dies führt dazu, dass keine Verbindung zum SQL Server-Datenbankproblem hergestellt werden kann!
php 5.2.6 hat erfolgreich auf sql2000 auf iis zugegriffen
php 5.2.6 hat erfolgreich auf sql2008r2 auf iis zugegriffen
php 5.6.11 hat erfolgreich auf sql2008r2 auf Apache zugegriffen
【5.2.6 -> SQL2000】
Warum müssen Sie zum Testen eine so alte PHP-Version 5.2.6 verwenden, weil die PHP-Version 5.2 über ein integriertes php_mssql.dll-Modul verfügt,
Die Konfigurationsoption extension=php_mssql.dll in php.ini geöffnet, die anscheinend standardmäßig mssql2000 unterstützt,
Öffnen Sie phpinfo und Sie können den relevanten Inhalt des Support-Moduls sehen:
Es ist jetzt bequem, PHP unter PS.IIS 7.0 zu installieren. Sie können es über den PHP-Manager eines Drittanbieters installieren und die PHP-Version auch problemlos unter iS wechseln. Dies ist nicht der Hauptinhalt dieses Artikels und wird hier nicht vorgestellt;
Schreiben Sie eine kleine Testroutine:
<?php $server ="127.0.0.1\sql2000"; //服务器IP地址,如果是本地,可以写成localhost $uid ="sa"; //用户名 $pwd ="yoooko"; //密码 $database ="master"; //数据库名称 //进行数据库连接 $conn =mssql_connect($server,$uid,$pwd) or die ("connect failed"); mssql_select_db($database,$conn); //执行查询语句 $query ="select * from cs"; $row =mssql_query($query); //打印输出查询结果 while($list=mssql_fetch_array($row)) { print_r($list); echo "<br>"; } ?>
【5.6.11 -> SQL2008R2】
•SQLSRV30.EXE
•SQLSRV31.EXE
•SQLSRV32.EXE
•SQLSRV40.EXE
•Version 4.0 unterstützt PHP 7.0
•Version 3.2 unterstützt PHP 5.6, 5.5 und 5.4
•Version 3.1 unterstützt PHP 5.5 und 5.4
•Version 3.0 unterstützt PHP 5.4.
1. Ich habe PHP 5.6.11 win32 ts, ich muss dieses verwenden
php_pdo_sqlsrv_56_ts.dll
extension=C:PHP5extphp_pdo_sqlsrv_56_ts.dll
5. Schreiben Sie ein kleines Programm zur Überprüfung:
Wenn die folgende Eingabeaufforderung erscheint:
Möglicherweise müssen Sie auch Microsoft® ODBC Driver 11 für SQL Server® – Windows installieren
Download-Adresse: https://www.microsoft.com/zh-cn/download/details.aspx?id=36434
Wenn es richtig ist, sollte es in Ordnung sein:
PS. Da das neue Modul über PDO auf SQL Server 2008R2 zugreift, kann bei lokalem Zugriff direkt über die IP-Adresse und das SA-Konto darauf zugegriffen werden,
Wenn sich PHP und SQL2008r2 auf verschiedenen Computern befinden, müssen Sie den TCP-Port 1433 für den Zugriff festlegen. Ändern Sie den dynamischen Port auf 0 und setzen Sie den Port auf 14333. Wenn Ihr SQL2000 bereits 1433 belegt hat, greifen Sie auf „Hinzufügen“ zu nach der Adresse xxxx Portnummer
sqlsrv:Server=192.168.1.xxxsql2008r2,14333;Database=master
Das Obige ist die detaillierte Erklärung mehrerer Situationen beim Zugriff auf SQL Server2008R2 in PHP 5.6.11. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht Ich werde Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der Script House-Website bedanken!