Als ich ezSQL studierte, sah ich mssql_connect() und andere von PHP bereitgestellte Funktionen zur Verbindung mit MSSQL. Ich dachte, dass PHP, eine Open-Source- und weltweit beliebte Programmiersprache, einfach mit den Daten von Microsoft zu verbinden sein sollte. Aber in Wirklichkeit stieß ich bei der Umsetzung auf viele Schwierigkeiten.
Die PHP-Version, die ich zu Beginn heruntergeladen habe, war 5.93. Nachdem ich sie lange heruntergeladen und Umgebungsvariablen usw. hinzugefügt hatte, lief die Funktion phpinfo() endlich erfolgreich im Browser. Als ich dann auf der ganzen Welt nach php_mssql.dll suchte, stellte ich fest, dass mssql in PHP-Versionen 5.3 und höher nicht mehr nativ unterstützt wird.
Endlich habe ich Microsoft Drivers 3.0 für PHP für SQL Server gefunden. Ich dachte, dass die Software von Microsoft dazu in der Lage sein sollte, aber ich war hilflos, als ich feststellte, dass SQLSRV30.EXE nicht ausgeführt werden konnte: „SQLSRV30.EXE ist nicht verfügbar.“ ein gültiges Win32-Programm.
Nachdem ich lange im Internet gesucht habe, habe ich die folgenden möglichen Methoden zusammengefasst, aber vorher müssen Sie:
MICROSOFT SQL SERVER konfigurieren
1, SQL Server herunterladen und installieren. Mittlerweile gibt es viele Versionen von 2000 bis 2008. Finden Sie eine und laden Sie sie selbst herunter.
2. Öffnen Sie den TCP/IP-Verbindungsmodus, um den Fernzugriff auf die Datenbank zu ermöglichen. SQL Server-Konfigurationsmanager –> Netzwerkkonfiguration –> TCP/IP aktiviert
3.
4. PHP installieren und IIS-Dienst konfigurieren.
5. Öffnen Sie die Datei php.ini in dem Ordner, in dem sich PHP befindet, und fügen Sie Folgendes hinzu:
mssql.textlimit = 20971520 mssql.textsize = 20971520
Danach können Sie die folgenden drei Methoden zum Herstellen einer Verbindung befolgen Bereits zur Datenbank hinzugefügt:
Verwenden Sie die mit PHP gelieferte Methode, um eine Verbindung zu MSSQL herzustellen (gilt nicht für 5.3 und spätere Versionen)
Stellen Sie sicher, dass sich php_mssql.dll in der PHP-Ext-Erweiterungsbibliothek befindet Ordner, und dann in PHP.ini Entfernen Sie in der Konfiguration das „;“ vor
;extension=php_mssql.dll
.
Dann können Sie die Verbindung testen:
//连接MSSQL $conn=mssql_connect("实例名或者服务器IP","用户名","密码"); //测试连接 if($conn) { echo "连接成功"; }
Microsoft-Treiber für SQL Server für PHP
Im Juli 2008 hat Microsoft einen neuen Treiber für PHP veröffentlicht. Der Treiber das eine Verbindung zu SQL Server herstellt, behebt einige der Mängel der mit PHP gelieferten MSSQL-Funktion und wird in Form eines PHP-Erweiterungs-Plug-Ins entwickelt. Dadurch können Sie problemlos Microsoft-Datenbanken mit PHP lesen und schreiben.
Wenn Ihr Server IIS verwendet, müssen Sie es hier herunterladen:
http://php.iis.net/
Weil Der obige Link ist eigentlich eine von Microsoft integrierte Netzwerkentwicklungsplattform, die jedoch problemlos PDO-Plug-Ins und PHP integriert, aber wenn Sie diese nicht benötigen Sie können es nicht mehr installieren, diese befinden sich in Visual Studio.
Aber wenn Sie Apache verwenden, können Sie dieses Plug-in hier direkt herunterladen. Es handelt sich tatsächlich um eine entpackte Datei und mehrere DLL-Dateien werden wie folgt entpackt:
1) Laden Sie das Treiberpaket herunter: http://www.microsoft.com/en-us/download/details.aspx?id=20098.
2) Extrahieren Sie die DLL Datei in das PHP-Verzeichnis extension_dir kopieren. Wenn dort steht, dass SQLSRV30.EXE kein gültiges Win32-Programm ist, fehlen möglicherweise einige Bibliotheken, es handelt sich möglicherweise um vc10 oder es kann nicht mit Administratorrechten ausgeführt werden.
extension_dir = “C:\PHP\ext”
3) Verweisen Sie auf die entsprechende Dynamic Link Library-Datei in der php.ini-Konfigurationsdatei
extension=php_sqlsrv_52_ts_vc6.dll extension=php_pdo_sqlsrv_52_ts_vc6.dll extension=php_pdo.dll
Die 52 und 53 stellen die 5.2.x- und 5.3.x-Versionen von PHP dar. Wählen Sie die Version, die zu Ihrer PHP-Version passt.
Die Wahl von vc6 oder vc9 hängt hauptsächlich davon ab, was Sie verwenden . Wenn Sie IIS verwenden, wählen Sie für Webserver-Software vc9, wenn Sie Apache verwenden, wählen Sie vc6.
Was ts und nts betrifft, hängt es davon ab, ob die von Ihnen installierte PHP-Version threadsicher oder nicht threadsicher ist und nts nicht threadsicher ist.
4) Apache neu starten
5) Mit der Datenbank verbinden
Testen Sie den Verbindungscode:
<?php //本地测试的服务名 "(local)"; //使用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)); } ?>
Verwenden Sie FreeTDS unter Windows
Was ist FreeTDS? FreeTDS ist eigentlich eine Open-Source-(oder kostenlose) C-Programmbibliothek, die auf die SQL-Datenbank von Microsoft unter einem Linux-System zugreifen und diese betreiben kann. Es kann in der db-lib- oder ct-lib-Bibliothek von Sybase verwendet werden, die auch eine ODBC-Bibliothek enthält. Ermöglicht vielen Anwendungen die Verbindung mit Sybase- oder Microsoft SQL-Servern. FreeTDS wird als Quellcode veröffentlicht und kann daher auf fast jedem System kompiliert und installiert werden.
Wenn Ihr Server ein Windows-System ist, dann sollten Sie php_dblib.dll verwenden. (Weitere Informationen zur Verwendung von FreeTDS für Unix.)
Normalerweise finden wir diese DLL-Dateien auf dieser Website – der Website von Frank Kromann, aber sie ist grundsätzlich veraltet und wird viele Probleme verursachen, daher empfehlen wir die Verwendung PHP 5.2.x-Version unter Windows, und sehen Sie sich die folgenden Vorschläge an:
1. Folgen Sie der Tabelle unten, um php_dblib.dll herunterzuladen und im Ordner /PHP/ext zu speichern.
PHP versionThread SafeFreeTDS versionDownload URLPHP 5.2.x (vc6)Yes0.82 + 20090302 patchesDownload!No0.82 + 20090302 patchesDownload!PHP 5.3.x (vc9)Yes0.82 + 20090904 patchesDownload!No0.82 + 20090904 patchesDownload!PHP 5.4.x (vc9)Yes0.82 + 20110906 patchesDownload! FTP Download!No0.82 + 20110906 patchesDownload! FTP Download!2、 FreeTDS 需要安装 .NET Framework v1.1 ,你可以到微软的网站去下载。或者你去Frank's site 下载需要的DLL文件,并保存到你的/PHP根目录下面。
3、在php配置文件 /PHP/php.ini 中添加:
extension=php_dblib.dll
4、当php引擎启动FreeTDS模块的时候需要传递一些信息,使得FreeTDS能够连接到它的默认的数据库。因此它的需要在freetds.conf中定义数据库连接的基本信息,该文件在其根目录下,可以按照你的情况来进行修改:
[global] host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server) port = 1433 client charset = UTF-8 tds version = 8.0 text size = 20971520
5、创建config.php文档来定义数据库连接参数:
$CFG->dbtype = 'mssql'; // Required $CFG->dbhost = 'localhost'; // assuming MS SQL is on the same server, otherwise use an IP $CFG->dbname = 'moodle'; // or whatever you called the database you created $CFG->dbuser = 'yourusername'; // I usually use the 'sa' account (dbowner perms are enough) $CFG->dbpass = 'yourpassword'; $CFG->dbpersist = false; $CFG->prefix = 'mdl_'; //Prefix, you can change it, but NEVER leave it blank.
6、 重启你的网站,如果还是没有连接到你的数据库的话,在 /PHP/php.ini文件中将display_startup_errors改为"On",当你解决了这些问题之后再将错误报告改为“Off”;
7、测试你的网站,建立test.php文件,代码如下,访问http://www.php.cn/进行测试
<?php $link = mssql_connect('localhost', 'db_user', 'db_password'); if(!$link) { echo'Could not connect'; die('Could not connect: ' . mssql_error()); } echo'Successful connection'; mssql_close($link); ?>
以上就是php连接微软MSSQL(sql server)完全攻略 的内容,更多相关内容请关注PHP中文网(www.php.cn)!