在Web開(kāi)發(fā)過(guò)程中,處理數(shù)據(jù)是不可避免的。而SQL Server是其中一個(gè)非常常用的數(shù)據(jù)庫(kù)管理系統(tǒng),而PHP則是目前最主要的Web開(kāi)發(fā)語(yǔ)言之一。PHP 5.6版本對(duì)于使用SQL Server的開(kāi)發(fā)者們來(lái)說(shuō),提供了非常便捷的API接口,讓編寫數(shù)據(jù)庫(kù)相關(guān)代碼更加簡(jiǎn)單。
使用PHP連接SQL Server需要兩個(gè)必要條件,一是啟動(dòng)PHP的mssql擴(kuò)展,二是安裝SQL Server客戶端數(shù)據(jù)訪問(wèn)組件。這些在眾所周知的文檔中都有詳細(xì)的說(shuō)明,這里就不再贅述了。由此我們可以開(kāi)始寫SQL Server相關(guān)的代碼了。
$serverName = "localhost"; $connectionInfo = array( "Database"=>"myDB", "UID"=>"sa", "PWD"=>"password"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn === false ) { die( print_r( sqlsrv_errors(), true)); } echo "Connection established.
";
使用sqlsrv_connect函數(shù)來(lái)連接SQL Server,第一個(gè)參數(shù)指定了SQL Server的IP地址或者是主機(jī)名,第二個(gè)參數(shù)是一個(gè)數(shù)組,用來(lái)指定連接到SQL Server數(shù)據(jù)庫(kù)的相關(guān)信息,其中包括了數(shù)據(jù)庫(kù)名稱,用戶名以及密碼等。如果連接失敗,將會(huì)輸出錯(cuò)誤信息。如果連接成功,我們就可以利用返回的連接對(duì)象來(lái)執(zhí)行各種SQL Server操作了。
以下是另外兩個(gè)常用的函數(shù),sqlsrv_query和sqlsrv_fetch_array:
$tsql = "SELECT * FROM Orders"; $stmt = sqlsrv_query( $conn, $tsql); if( $stmt === false ) { die( print_r( sqlsrv_errors(), true)); } while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) { echo $row['OrderID'].", ".$row['OrderNumber']."
"; }
這段代碼展示了如何使用sqlsrv_query函數(shù)來(lái)查詢Orders表中的所有數(shù)據(jù),并使用sqlsrv_fetch_array函數(shù)來(lái)逐行輸出每一條信息。sqlsrv_fetch_array的第二個(gè)參數(shù)SQLSRV_FETCH_ASSOC表示得到的數(shù)據(jù)將被以關(guān)聯(lián)數(shù)組的形式返回,方便數(shù)據(jù)的引用。
總的來(lái)說(shuō),PHP 5.6提供了很多方便的API接口,讓我們可以非常方便地處理SQL Server中的數(shù)據(jù),開(kāi)發(fā)人員們可以更加專注于實(shí)現(xiàn)業(yè)務(wù)邏輯,而不是被復(fù)雜的數(shù)據(jù)細(xì)節(jié)所纏繞。