Heim >Backend-Entwicklung >PHP-Tutorial >So verbinden Sie PHP mit sqlSrv unter Linux mit der Microsoft-Datenbank
Wenn PHP sqlSrv verwendet, um eine Verbindung zur SQLSERVER-Datenbank von Microsoft herzustellen, muss es die Erweiterung pdo_srv verwenden.
Die Installation der pdo_srv-Erweiterung kann direkt mit pecl installiert werden.
Die Umgebung beim Schreiben dieses Artikels ist
Ubuntu 16.04 LTS
PHP 7.0.27
UnixODBC 2.3.5
FreeTDS 1.00 .82
2018-03-02
pecl
Das Programm befindet sich im bin-Verzeichnis unter dem PHP-Installationsverzeichnis, wenn sich Ihr PHP-Verzeichnis nicht in den Linux-Umgebungsvariablen befindet. Oder Ihr pecl-Programm ist nicht mit dem System-Bin-Pfad verknüpft und Sie werden gefragt, dass das pecl-Programm nicht installiert ist.
Die Installation von sqlsrv erfordert die Unterstützung von unixODBC. Wenn Sie also unixODBC vor der Installation nicht installiert haben, müssen Sie zuerst unixODBC installieren. Für unixODBC ist FreeTDS erforderlich, um eine Verbindung zu SQLSERVER herzustellen, da unixODBC nur eine Reihe von definiert Gemeinsame Schnittstellen. Es gibt keine spezifische Implementierungsmethode,
1. Installieren Sie FreeTDS
a), laden Sie
b), kompilieren und installierenhttp://www.freetds.org/
./configure --with-tdsver=auto --prefix=/usr/local/freetds --enable-msdblib --with-gnu-ld --enable-shared --enable-static --with-unixodbc=/usr/localmake make install
Einige Online-Tutorials sagen –with-tdsver=8.0. Beim Kompilieren wurde ein Fehler gemeldet, siehe ./configure –help Beschreibung von with-tdsverNach Abschluss der Installation wird ein etc-Verzeichnis in /usr/local/freetds generiert. Wir müssen die Datei freetds.conf verwenden.
c), Konfiguration
Konfigurieren Sie die Datei freetds.conf. Sie müssen
nicht konfigurieren. Die Methode, freetds.conf nicht zu konfigurieren, finden Sie im Konfigurationslink von unixODBC
[global]#全局配置tds version = auto#更多的配置可以参考freetds官方文档,我这里这样配置已经够用了[servertag]#定义一个叫 servertag 的节点,这个节点的名称可以自定义的,不是固定#所有 # 符号的内容都可以不写在配置文件中,这里只是注释解释用#更多的细节配置看官方描述#数据库的连接IP地址host = 192.168.9.12 #数据库的端口port = 1433 #连接时默认打开的库名,【可以不配置此项】database = master #tds version 有全局配置,这里也可以不写tds version = auto2. Installieren Sie unixODBC a), Herunterladen
https://sourceforge.net/projects/unixodbc/files/unixODBC/ http://www.unixodbc.org/ 以上两个网站都可以下载到,建议到第二个官网下载吧。b), kompilieren und installieren
./configure --prefix=/usr/local/unixODBC --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etcmake make installc), konfigurieren
Konfiguration in /etc/odbc.ini hinzufügen
Es gibt Tutorials im Internet, die in /usr/local/etc/odbc.inikompilieren und installieren Obwohl diese Datei nach der Kompilierung generiert wird, wird die Konfiguration in dieser Datei nicht wirksam. Sie müssen
[ODBC Data Sources]#描述而已,没有测过不写行不行,理论上可行SQLSERVER2018912 = 9.12 DB [SQLSERVER2018912]#Driver 指向的目录是FreeTDS编译生成的文件,类似一个驱动文件,稍后讲解安装方法Driver = /usr/local/freetds/lib/libtdsodbc.so Description = 9.12 DB,文字描述 Trace = No#Server 可以直接写 FreeTDS的freetds.conf 中配置的servertag节点名#使用freetds.conf配置时,port 也不用配置了。#因为在此直接写server IP时能配置的选项很少,而freetds.conf可以配置的细节更多#此处我已经配置了IP,freetds.conf中其实就可以不用配置。只要安装好freetds即可Server = 192.168.9.12Port = 1433#7.4或auto应该都可以。没有详细研究过TDS_Version = 7.4[Default]#全局默认配置。理论上可以不写#同上,默认使用Driver = /usr/local/freetds/lib/libtdsodbc.sonoch in /etc/odbc.ini konfigurieren. Nachdem die obige Konfiguration abgeschlossen ist, können Sie sie testen.
Verwenden Sie zum Testen das beim Kompilieren von unixODBC generierte isql-Programm. Der Pfad ist /usr/bin/isql
/usr/bin/isql SQLSERVER2018912 数据库账号 密码isql. Sie können isql –help verwenden, um die
-Konfiguration anzuzeigen. Wenn keine Fehler vorliegen, können Sie sehen, dass Sie mit der Datenbank verbunden sind . Sie können SQL-Anweisungen verwenden, um Dinge abzufragen.
Nachdem die unixODBC-Konfiguration abgeschlossen ist, können Sie die PHP-Erweiterung installieren
pecl install sqlsrv
Nach der Installation müssen Sie die Erweiterung laden in php.ini und starten Sie dann Apache neu, damit es wirksam wird.Achten Sie auf den nach der Kompilierung auf dem Bildschirm gedruckten Inhalt
Die Umgebung beim Schreiben dieses Artikels istWenn PHP sqlSrv verwendet, um eine Verbindung zur SQLSERVER-Datenbank von Microsoft herzustellen, müssen Sie die Erweiterung pdo_srv verwenden.Ubuntu 16.04 LTS
php 7.0.27
unixODBC 2.3.5
FreeTDS 1.00.82
2018-03-02
Die Installation der pdo_srv-Erweiterung kann direkt mit pecl
peclDie Installation von sqlsrv erfordert die Unterstützung von unixODBC. Wenn Sie also unixODBC vor der Installation nicht installiert haben, müssen Sie zuerst unixODBC installieren. Für unixODBC ist FreeTDS erforderlich, um eine Verbindung zu SQLSERVER herzustellen, da unixODBC nur eine Reihe von definiert Gemeinsame Schnittstellen. Es gibt keine spezifische Implementierungsmethode, 1. Installieren Sie FreeTDSinstalliert werden Das Programm befindet sich im bin-Verzeichnis unter dem PHP-Installationsverzeichnis, wenn sich Ihr PHP-Verzeichnis nicht in den Linux-Umgebungsvariablen befindet. Oder Ihr pecl-Programm ist nicht mit dem System-Bin-Pfad verknüpft und Sie werden gefragt, dass das pecl-Programm nicht installiert ist.
a), laden Sie
http://www.freetds.org/b), kompilieren und installieren
./configure --with-tdsver=auto --prefix=/usr/local/freetds --enable-msdblib --with-gnu-ld --enable-shared --enable-static --with-unixodbc=/usr/localmake make installEinige Online-Tutorials sagen –with-tdsver=8.0. Beim Kompilieren wurde ein Fehler gemeldet, siehe ./configure –help Beschreibung von with-tdsver
Nach Abschluss der Installation wird ein etc-Verzeichnis in /usr/local/freetds generiert. Wir müssen die Datei freetds.conf verwenden.c), Konfiguration
Konfigurieren Sie die Datei freetds.conf. Sie müssen
2. Installieren Sie unixODBC
[global]#全局配置tds version = auto#更多的配置可以参考freetds官方文档,我这里这样配置已经够用了[servertag]#定义一个叫 servertag 的节点,这个节点的名称可以自定义的,不是固定#所有 # 符号的内容都可以不写在配置文件中,这里只是注释解释用#更多的细节配置看官方描述#数据库的连接IP地址host = 192.168.9.12 #数据库的端口port = 1433 #连接时默认打开的库名,【可以不配置此项】database = master #tds version 有全局配置,这里也可以不写tds version = auto
a), Herunterladen
b), kompilieren und installierenhttps://sourceforge.net/projects/unixodbc/files/unixODBC/ http://www.unixodbc.org/ 以上两个网站都可以下载到,建议到第二个官网下载吧。c), konfigurieren
./configure --prefix=/usr/local/unixODBC --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etcmake make installKonfiguration in /etc/odbc.ini hinzufügen
kompilieren und installieren Obwohl diese Datei nach der Kompilierung generiert wird, wird die Konfiguration in dieser Datei nicht wirksam. Sie müssennoch in /etc/odbc.ini konfigurieren. Nachdem die obige Konfiguration abgeschlossen ist, können Sie sie testen.
[ODBC Data Sources]#描述而已,没有测过不写行不行,理论上可行SQLSERVER2018912 = 9.12 DB [SQLSERVER2018912]#Driver 指向的目录是FreeTDS编译生成的文件,类似一个驱动文件,稍后讲解安装方法Driver = /usr/local/freetds/lib/libtdsodbc.so Description = 9.12 DB,文字描述 Trace = No#Server 可以直接写 FreeTDS的freetds.conf 中配置的servertag节点名#使用freetds.conf配置时,port 也不用配置了。#因为在此直接写server IP时能配置的选项很少,而freetds.conf可以配置的细节更多#此处我已经配置了IP,freetds.conf中其实就可以不用配置。只要安装好freetds即可Server = 192.168.9.12Port = 1433#7.4或auto应该都可以。没有详细研究过TDS_Version = 7.4[Default]#全局默认配置。理论上可以不写#同上,默认使用Driver = /usr/local/freetds/lib/libtdsodbc.soVerwenden Sie zum Testen das beim Kompilieren von unixODBC generierte ISO-Programm. Der Pfad ist /usr/bin/isql
/usr/bin/isql SQLSERVER2018912 数据库账号 密码-Konfiguration zu überprüfen. Wenn keine Fehler vorliegen, können Sie sehen, dass Sie mit der Datenbank verbunden sind . Sie können SQL-Anweisungen verwenden, um Dinge abzufragen.
Nachdem die unixODBC-Konfiguration abgeschlossen ist, können Sie die PHP-Erweiterung installieren
3. Installieren Sie die PHP-SQLSRV-Erweiterung
pecl install sqlsrvNach der Installation müssen Sie die Erweiterung laden in php.ini und starten Sie dann Apache neu, damit es wirksam wird.
Achten Sie darauf, was nach der Kompilierung auf dem Bildschirm angezeigt wird
Das obige ist der detaillierte Inhalt vonSo verbinden Sie PHP mit sqlSrv unter Linux mit der Microsoft-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!