mac php 连接 mssql 2008,php5.3.x连接MSSQLserver2008
開篇
因為畢設老師需求的原因,虛擬旅游網站要求的數據庫必須使用MS SQL server。
我最擅長的web編程語言是PHP,但是在PHP中鏈接MS SQL server是一件非常麻煩的事,我個人分析造成這種麻煩的原因:是因為使用PHP的一大優點就是免費,然而MS SQL server雖然圖形化界面操作起來簡單,但是其昂貴的授權費讓人望而卻步;加之MySQL不俗的性能和強大的社區支持,使得真正企業環境里,使用PHP + MS SQL server的人越來越少。
其實縱觀網上的文章,之所以有人選擇這樣的組合(PHP + MS SQL server)是因為系統的遺留問題。比如php程序員要求在某企業網站上進行二次開發,或者企業原來就是用的MS SQL server數據庫??傊?#xff0c;我經過十二小時的奮戰,終于通信成功,現在把過程和經驗記錄如下。
1. 安裝MS SQL server2008 express數據庫
安裝的過程比較簡單。但是必須記住一點問題,安裝時我們設置的??或者說是我們默認的??數據庫實例名。
1.1 數據庫默認的實例名
以MS SQL server2008 express為例,一般默認的實例名是 SQLEXPRESS。而我自行設置的是SQLSERVER,也就是sql server。
1.2 設置數據庫的登陸方式
我們一定要給sa用戶設置一個密碼,以便我們將來編寫程序訪問數據庫時的方便。我個人設置的密碼是”6個1“。
2. 登錄數據庫
利用管理工具:SQL Server Management Studio,登陸數據庫進行管理。如圖1。
圖1 登陸MS SQL server2008數據庫
2.1登陸時的會遇到的問題
登錄時我遇到了問題,如圖2。
圖2 登陸時遇到的問題
錯誤信息如下:
在與 SQL Server 建立連接時出現與網絡相關的或特定于實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確并且 SQL Server 已配置為允許遠程連接。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接) (Microsoft SQL Server,錯誤: 53)
2.2 問題的解決方案
在我百度了一些解決方案以后,我了解到,服務器名稱不能填寫默認的:(local)。應該以這樣的格式來填寫:計算機名稱\實例名稱。以我個人為例,如圖3。
圖3 正確的登陸填寫
既然能登陸到數據庫,就說明我們的安裝是沒有問題的。下面我們進行一些關于PHP的設置。
3 為PHP準備適當的庫文件
PHP5.3以后,其連接數據庫的原生代碼是由Microsoft團隊來維護的。我們需要的庫文件(在windows下是.dll文件)在PHP的源碼包里是沒有的,所以我們需要另行下載。
參照PHP官方文檔是最好的選擇。
http://php.com/manual/zh/book.sqlsrv.php
3.1 下載并安裝Microsoft SQL Server 2012 Native Client
說句題外話,這一步是我在寫博客時,閱讀PHP manual中才得知的。怪不得我第一遍在操作時,碰到了php報錯,中文大意就是“本機沒有安裝Microsoft SQL Server 2012 Native Client”。開來英文好,能閱讀官方文檔是王道啊!
下載Microsoft SQL Server 2012 Native Client的網址如下:
http://php.com/manual/zh/sqlsrv.requirements.php
3.2 下載適當的Microsoft SQL Server Driver for PHP
由官方文檔我們可以得知,對應于PHP5.3.x的適用程序是SQLSRV 3.0。下載網址如下:
http://www.microsoft.com/en-us/download/details.aspx?id=20098
3.3 選擇適當的庫文件
根據官方文檔,我們把3.2步驟中下載的程序??SQLSRV30.EXE??解壓縮以后,會得到8個驅動文件(驅動文件以.dll為結尾)。如圖4。
圖4 SQLSRV30.EXE解壓縮展開之后
根據官方文檔,php5.3線程安全版本應選擇 php_pdo_sqlsrv_53_ts.dll 和 php_sqlsrv_53_ts.dll兩個文件,放置在php根目錄下的ext文件夾下。例如,在我的機器中,路徑是D:\lamp\php5\ext。
3.4 怎么樣得知自己的php是否線程安全
在phpinfo中,我們查看這樣的一條信息。如圖5。
圖5 phpinfo輸出信息
“enable”表示該php是線程安全版本的反之就是非線程安全。
4. 配置php.ini文件
關于php.ini文件的配置,完全可以參照如下的網址。
http://msdn.microsoft.com/en-us/library/cc296203(v=sql.105).aspx
4.1 使php加載SQLSRV驅動
在php.ini的拓展模塊加載區??文件中extension那塊位置,填寫如下配置,使php默認加載SQLSRV 驅動。 extension=php_sqlsrv_53_ts.dll
4.2 使php加載PDO_SQLSRV驅動
在與4.1中同樣的位置,填寫如下配置。 extension=php_pdo_sqlsrv_53_ts.dll
為了使php開啟pdo驅動,我們還要開啟pdo驅動。 extension=php_pdo.dll
4.3驗證pdo_sqlsrv是否加載成功
在phpinfo中看到畫黃線的單詞,表示加載成功。如圖6所示。
圖6 phpinfo的輸出
5. 在php運行時動態加載
我也是現在才知道,php還有這樣的神奇功能,讓我們暫時注釋掉php配置文件里給你剛剛寫好的配置,試一下動態加載的功能。
根據官方文檔,dl()這個函數在php5.3被廢除了。我因此無法進行測試。
但是微軟官方的php代碼如下:
dl('php_pdo_sqlsrv_53_ts.dll');
6. 注意事項
在MS SQL server中,數據表能名稱不能叫user,因為有個系統表的名稱就是user!
本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴
本文系統來源:php中文網
總結
以上是生活随笔為你收集整理的mac php 连接 mssql 2008,php5.3.x连接MSSQLserver2008的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: S2FGAN论文阅读
- 下一篇: c语言两个字符串比较,将两个字符串s1和