Heim >Backend-Entwicklung >PHP-Tutorial >Anleitung zum Verbinden von Microsoft MSSQL (SQL-Server) mit PHP

Anleitung zum Verbinden von Microsoft MSSQL (SQL-Server) mit PHP

墨辰丷
墨辰丷Original
2018-05-30 13:48:181735Durchsuche

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 Ausführung auf viele Schwierigkeiten

Als ich ezSQL studierte, sah ich mssql_connect() und andere von PHP bereitgestellte Funktionen, um eine Verbindung zu MSSQL herzustellen. Ich dachte, dass PHP eine Open-Source- und beliebte Programmiersprache ist in der Welt, wäre bei der Anbindung an Microsoft-Daten eine Selbstverständlichkeit, aber wenn es um die tatsächliche Implementierung geht, stellen wir fest, dass es viele Schwierigkeiten gibt.

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, entdeckte ich, 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 php.ini-Datei in dem Ordner, in dem sich PHP befindet, und fügen Sie Folgendes hinzu:

mssql.textlimit = 20971520
mssql.textsize = 20971520

Danach können Sie folgen Es gibt drei Methoden, um eine Verbindung zur Datenbank herzustellen:

Verwenden Sie die PHP-eigene Methode, um eine Verbindung zu MSSQL herzustellen (gilt nicht für Versionen 5.3 und höher)

Stellen Sie sicher, dass php_mssql.dll in PHP vorhanden ist ext-Erweiterungsbibliotheksordner. Entfernen Sie dann in der Konfiguration in PHP.ini das „;“ vor

;extension=php_mssql.dll

.

Sie können dann die Verbindung testen:

//连接MSSQL
$conn=mssql_connect("实例名或者服务器IP","用户名","密码");

//测试连接
if($conn)
{
 echo "连接成功";
}

Microsoft Drivers for SQL Server for PHP

Im Juli 2008 veröffentlichte Microsoft einen neuen Treiber für PHP zur Verbindung mit SQL Server. Er verbesserte einige der Mängel der PHP-eigenen MSSQL-Funktion und wurde in Form eines PHP-Erweiterungs-Plug-Ins entwickelt Einfaches Lesen und Schreiben von Microsoft-Datenbanken.

Wenn Ihr Server IIS verwendet, müssen Sie es hier herunterladen:

http://php.iis.net/

Weil über den obigen Link Tatsächlich Es handelt sich um eine von Microsoft integrierte Netzwerkentwicklungsplattform, die nur die Online-Installation ermöglicht, aber die Integration von PDO-Plug-Ins und PHP ist natürlich auch einige andere Entwicklungsfunktionen von Microsoft Sie brauchen es, Sie müssen es nicht installieren.

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-Erweiterungsverzeichnis , wenn es heißt, dass SQLSRV30 .EXE kein gültiges Win32-Programm ist, fehlen möglicherweise einige Bibliotheken, es ist möglicherweise vc10 oder es kann nicht mit Administratorrechten ausgeführt werden.

extension_dir = „C:PHPext“

3) Verweisen Sie auf die entsprechende Dynamic Link Library-Datei in der Konfigurationsdatei php.ini

extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
extension=php_pdo.dll

Die 52 und 53 repräsentieren die 5.2.x- und 5.3.x-Versionen von.php , Wählen Sie die Version, die zu Ihrer PHP-Version passt. Die Wahl von vc6 oder vc9 hängt hauptsächlich davon ab, welche Webserver-Software Sie verwenden. Wenn Sie IIS 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, ts ist threadsicher und nts ist nicht threadsicher.

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

in FreeTDS unter Windows verwenden

Was ist FreeTDS? Eigentlich ist FreeTDS eine Open-Source-(oder kostenlose) C-Programmbibliothek, die auf die SQL-Datenbank von Microsoft unter Linux-Systemen 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.)

通常我们可以在这个网站上找到这些DLL文件- Frank Kromann's site, 但是它基本上很多都已经过时了,并且会引发很多的问题,因此我们推荐windows下使用PHP 5.2.x版本,并且看看下面的建议 :

1. 按照下面的表格来下载 php_dblib.dll 并且将其保存到 /PHP/ext 文件夹下面.





PHP version Thread Safe FreeTDS version Download URL
PHP 5.2.x (vc6) Yes 0.82 + 20090302 patches Download!
No 0.82 + 20090302 patches Download!
PHP 5.3.x (vc9) Yes 0.82 + 20090904 patches Download!
No 0.82 + 20090904 patches Download!
PHP 5.4.x (vc9) Yes 0.82 + 20110906 patches Download! FTP Download!
No 0.82 + 20110906 patches Download! 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 = &#39;mssql&#39;; // Required
$CFG->dbhost = &#39;localhost&#39;; // assuming MS SQL is on the same server, otherwise use an IP
$CFG->dbname = &#39;moodle&#39;;  // or whatever you called the database you created
$CFG->dbuser = &#39;yourusername&#39;; // I usually use the &#39;sa&#39; account (dbowner perms are enough)
$CFG->dbpass = &#39;yourpassword&#39;;
$CFG->dbpersist = false;
$CFG->prefix = &#39;mdl_&#39;;  //Prefix, you can change it, but NEVER leave it blank.

6、 重启你的网站,如果还是没有连接到你的数据库的话,在 /PHP/php.ini文件中将display_startup_errors改为"On",当你解决了这些问题之后再将错误报告改为“Off”;
7、测试你的网站,建立test.php文件,代码如下,访问http://localhost/test.php进行测试

<?php
	$link = mssql_connect(&#39;localhost&#39;, &#39;db_user&#39;, &#39;db_password&#39;);
	if(!$link) {
		echo&#39;Could not connect&#39;;
		die(&#39;Could not connect: &#39; . mssql_error());
	}
	echo&#39;Successful connection&#39;;
	mssql_close($link);
?>

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php中常量、静态属性、非静态属性的区别

php中静态属性和静态方法区别

php中类和对象:静态属性、静态方法图文详解

Das obige ist der detaillierte Inhalt vonAnleitung zum Verbinden von Microsoft MSSQL (SQL-Server) mit PHP. 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