摘要:下面程序員雷雪松就詳細的看看下如何配置支持下載并安裝,是一套為和允許程序來跟微軟和數據庫交互的動態庫。注意的路徑重啟查看已經安裝的擴展這樣擴展就安裝完成了,就可以使用相關函數操作數據庫了。原文來源程序員雷雪松的個人博客
因為項目以前的數據庫為SQLServer(MSSql),客戶希望不要換數據庫。在當今客戶就是上帝的理念下,于是只能采用Linux下PHP操作MSSql。由于之前沒什么經驗,甚至可以說是第一次。于是在網上找了很多Linux下PHP配置MSSql的資料,其中不得不說錯誤太多,自己做了很多實驗,最終還是完美的解決PHP支持MSSql的問題。下面PHP程序員雷雪松就詳細的看看Linux下如何配置PHP支持MSSql?
1、下載并安裝freetds,freetds是一套為UNIX和Linux允許程序來跟微軟SQL Server和Sybase數據庫交互的動態庫。
[root@PHP ~]# wget ftp://ftp.freetds.org/pub/freetds/curren...
[root@PHP ~]# tar -zxvf freetds-current.tar.gz
[root@PHP ~]# cd freetds-dev.0.99.633/
[root@PHP freetds-dev.0.99.633]# ./configure --prefix=/usr/local/freetds --with-tdsver=7.3--enable-msdblib --enable-dbmfix
[root@PHP freetds-dev.0.99.633]# make && make Install
[root@IM freetds-dev.0.99.633]# /usr/local/freetds/bin/tsql -H mssql數據庫地址 -p 端口 -U 用戶名-P 密碼
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> use test; #選擇數據庫
2> go #提交才會執行
1> select * from user #查詢user表
2> go #提交才會執行
1> quit
2、PHP有兩種方式操作MSSql,一種通過PHP中MSSql擴展中的MSSql相關函數,一種是通過PHP中pdo_dblib擴展通過pdo的方式操作MSSql。下面分別講解下安裝PHP mssql擴展和pdo_dblib擴展以及各自的用法。
a、安裝PHP mssql擴展。
[root@PHP ~]# cd /php-5.6.18/ext/mssql/
[root@IM mssql]# phpize
[root@IM mssql]# ./configure --with-php-config=/usr/local/bin/php-config --with-mssql=/usr/local/freetds
[root@IM mssql]# make && make install
[root@IM mssql]# vi php.ini
extension=mssql.so #注意mssql.so的路徑
[root@IM mssql]# /usr/local/apache/bin/httpd -k restart #重啟apache
[root@IM mssql]# php -m #查看已經安裝的mssql擴展
這樣MSSql擴展就安裝完成了,就可以使用mssql相關函數操作MSSql數據庫了。
$conn = mssql_connect("ip地址:端口", "用戶名", "密碼");
//測試連接
if ($conn) {
echo "連接成功";
}
b、安裝pdo_dblib擴展
[root@PHP ~]# cd /usr/php-5.5.28/ext/pdo_dblib/
[root@IM pdo_dblib]# phpize
[root@IM pdo_dblib]# ./configure --with-php-config=/usr/local/bin/php-config --with-pdo-dblib=/usr/local/freetds/
[root@IM pdo_dblib]# make && make install
[root@IM pdo_dblib]# vi php.ini
extension=pdo_dblib.so #注意pdo_dblib.so的路徑
[root@IM pdo_dblib]# /usr/local/apache/bin/httpd -k restart #重啟apache
[root@IM pdo_dblib]# php -m #查看已經安裝的pdo_dblib擴展
這時候就可以通過pdo的函數操作MSSql數據庫了。
$dsn = "dblib:host=ip地址:端口;dbname=$dbname";
$user = "dbuser";
$password = "dbpass";
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
下面附上ThinkPHP3.2中操作MSSql的配置文件conf.php:
return array(
//"配置項"=>"配置值"
"DB_TYPE" => "sqlsrv", // 數據庫類型
"DB_USER" => "", // 用戶名
"DB_PWD" => "", // 密碼
"DB_PORT" =>"", // 端口
"DB_PREFIX" => "", // 數據庫表前綴
"DB_DSN"=> "dblib:host=IP地址:端口;dbname=數據庫名稱",
"DB_CHARSET" => "utf8", // 字符集
);
在ThinkPHP3.2中如果支持MSSql,還得修改ThinkPHP驅動文件的連接參數,否則會報錯’Undefined class constant ‘PDO::SQLSRV_ATTR_ENCODING’。具體的操作辦法為:將ThinkPHPLibraryThinkDbDriverSqlsrv.class.php中第26行’PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8,’注釋掉即可。ThinkPHP數據庫操作MSSql時,如果原表名是USER,如果你寫為M(‘USER’),那么ThinkPHP變為U_S_E_R。所以在ThinkPHP操作MSSql表明一定要小寫。
原文來源:PHP程序員,雷雪松的個人博客--http://www.leixuesong.cn/1920
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21495.html
摘要:簡介是一個一鍵配置工具,采用腳本語言編寫。支持自動配置環境,以前提供各種其它的配置工具,如自動配置配置等。網絡問題斷開安裝過程中由于網絡原因導致終端斷開,默認使用安裝,可以使用命令恢復終端。 簡介 ezhttp是一個Linux一鍵配置工具,采用bash腳本語言編寫。支持自動配置LAMP,LNMP,LNAMP環境,以前提供各種其它的配置工具,如自動配置swap,配置iptables等。項...
摘要:簡介是一個一鍵配置工具,采用腳本語言編寫。支持自動配置環境,以前提供各種其它的配置工具,如自動配置配置等。網絡問題斷開安裝過程中由于網絡原因導致終端斷開,默認使用安裝,可以使用命令恢復終端。 簡介 ezhttp是一個Linux一鍵配置工具,采用bash腳本語言編寫。支持自動配置LAMP,LNMP,LNAMP環境,以前提供各種其它的配置工具,如自動配置swap,配置iptables等。項...
摘要:谷歌,,,雅虎和最近因世界杯獲得龐大觀眾數量的都在使用。因此,數據庫服務器的能力是毋庸置疑的。微軟的服務器,服務器以及未來的更新價格昂貴。更依賴于微軟數量有限的開發者做出的改進和更新。 【編者按】本文主要針對開源 PHP 和非開源的 ASP.NET 在性能、成本、可擴展性,技術支持和復雜性等方面進行比較。 在網上論壇,總是有成百上千的文章和帖子在討論 PHP 和 ASP.NET,究竟誰...
摘要:原來全部手動下載解壓編譯的時代過去了,曾經的我為了安裝個用去連接花費了兩個晚上,這次又要安裝新的開發環境,有一些數據需要連接,原以為又要來一遍,但是有了以后,一切簡單到爆。 原來全部手動下載解壓編譯的時代過去了,曾經的我為了安裝個freetds 用ODBC去連接mssql花費了兩個晚上,這次又要安裝新的開發環境,有一些數據需要連接sqlserver,原以為又要來一遍,但是有了brew以...
閱讀 1612·2021-09-23 11:31
閱讀 927·2021-09-23 11:22
閱讀 1352·2021-09-22 15:41
閱讀 4080·2021-09-03 10:28
閱讀 2914·2019-08-30 15:55
閱讀 3548·2019-08-30 15:55
閱讀 1960·2019-08-30 15:44
閱讀 2723·2019-08-30 13:50