項目環境是php5.3.28 項目用的ThinkPHP3.2.3 已經mysql5.5數據庫,要和另外一個項目對接,須要鏈接sqlsever2000數據庫進行一些操做。
第一種用php自帶擴展鏈接數據庫:
一、首先要下載
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_53_ts_vc9.dll
下載地址:http://share.weiyun.com/dc589fc41567ce6e3fb8b131ec1553ff
這兩個文件
二、複製到PHP目錄下的ext目錄下
三、修改PHP目錄下的php.ini文件:
在文件最後加上
extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll
四、而後查找
mssql.secure_connection
把值改成on
保存php.ini文件
五、重啓apache
php裏面的鏈接數據代碼
$model = new Model();
$conn=$model->db(1,"sqlsrv://登陸名稱:密碼@服務器host:1433/數據庫名稱");
$sql='select id,code from t_user';
$res=$conn->query($sql);
參考網址(轉):http://www.cnblogs.com/phpyangbo/p/thinkphp-sqlserver-lianjie.html
我用這種方法遇到問題了,在我本地環境上面能夠正常使用sqlserver數據庫,
到了服務器上面能鏈接上數據庫,但是執行不了sql,折騰了兩天沒找到什麼問題而後就用第二種方法鏈接了
第二種 用ODBC鏈接sqlserver數據庫
1.配置SQL Server ODBC數據源
個人系統是64位的,就得配64位的數據源
(1)運行C:\Windows\SysWOW64\odbcad32.exe
(2)在【ODBC數據源管理器】對話框中,單擊【系統DNS】標籤,單擊【添加】按鈕,彈出【建立新數據源】對話框
(3)在【建立新數據源】對話框中,在驅動程序序列表中選擇【SQL Server】,單擊【完成】按鈕,彈出【建立到SQL Server的新數據源】對話框
(4)在【建立到SQL Server的新數據源】對話框中,在【名稱(M)】文本框中輸入數據源名稱:(可本身自由命名,讀取性好就行)php鏈接的時候會用到,
在【服務器(S)】文本框中選擇服務器名爲:要是鏈接本地的寫local,鏈接遠程的寫遠程服務器的ip,單擊【下一步】按鈕,進入【建立到SQL Server的新數據源】對話框
(5) 在【建立到SQL Server的新數據源】對話框中,選擇【使用用戶輸入登錄ID和密碼的SQL Server驗證(s)】單選按鈕,在【登錄ID(l)】文本框內輸入SQL Server身份驗證的登陸名:sa,
在【密碼】文本框內輸入設定的密碼,單機【下一步】按鈕,彈出【建立到SQL Server的新數據源】對話框
(6)在【建立到SQL Server的新數據源】對話框中,勾選【更改默認的數據庫爲】複選框,將默認的數據庫選擇爲本身要鏈接的數據庫,單擊【下一步】按鈕,彈出【建立到SQL Server的新數據源】對話框
(7)在【建立到SQL Server的新數據源】對話框中,採用默認設置。單擊【完成】按鈕,彈出【ODBC Microsoft SQL Server安裝】對話框
(8)在【ODBC Microsoft SQL Server安裝】對話框中,單擊【測試數據源】按鈕。鏈接成功會顯示的,而後點肯定就好了,數據源就配好了。
2.php用數據源鏈接sqlserver數據庫
(1)在 php.ini 中將 extension=php_pdo_odbc.dll 前的分號去掉,並重啓 apache.
(2)php腳本鏈接代碼
$servername="數據源的名稱";
$conn=odbc_connect($servername,'數據庫登陸名稱','登陸密碼',SQL_CUR_USE_ODBC);
$sql="SELECT * FROM user";
$result=odbc_exec($conn,$sql);
可參考(轉):http://blog.sina.com.cn/s/blog_a07a3f180101dg4g.html
之前作項目沒有鏈接過sqlserver數據庫,第一次鏈接,折騰了三天才鏈接上,總結下經驗,之後在連接的是不用處處找了php
補充:
PHP向sqlserver2000中寫入數據,中文亂碼
首先:查看SQLserver編碼格式的SQL語句爲:
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
查詢結果的含義:
936 簡體中文GBK
950 繁體中文BIG5
437 美國/加拿大英語
932 日文
949 韓文
866 俄文
65001 unicode UFT-8
PHP使用UTF-8編碼。SQL Server 2008使用默認的GBK編碼。這樣,向數據庫寫入中文是會出現亂碼的。
解決辦法:
在執行查詢語句以前將查詢語句及所要插入的數據轉化爲GBK編碼。
$query = "INSERT INTO employees (employeeID, employeeName) VALUES ('$employeeID', '$employeeName')";
$query = iconv("utf-8", "gbk", $query);
html