Linux下的PHP開發,無法避免地需要使用到SQL Server數據庫。而要操作SQL Server數據庫的話,就需要用到SQL Server 驅動。在PHP中,要使用SQL Server驅動,有兩種方式:一是ODBC,二是SQLSRV擴展。比較而言,SQLSRV擴展更加直觀易用,同時也更安全穩定。
SQL Server 數據庫是微軟公司開發的一款關系型數據庫管理系統,通常是運行在Windows操作系統中。而PHP是一門跨平臺的Web開發語言,能夠在Windows、Linux、Unix等多個操作系統上運行。這就要求我們在Linux下使用PHP開發時,需要使用SQL Server驅動,來連接SQL Server數據庫,并隨之實現讀寫數據等操作。
若使用ODBC,開發者需要從Microsoft官網下載ODBC驅動(Apache和Nginx server均可),之后添加odbc.so擴展到PHP的擴展列表中。添加完成后即可正常使用ODBC函數進行SQL Server數據庫操作。
而如果使用SQLSRV擴展,則需要安裝Microsoft提供的PHP SQL Server驅動。通過使用SQLSRV擴展,可以通過很少的代碼就能輕松連接到SQL Server數據庫。比如以下示例代碼:
$conn = sqlsrv_connect($serverName, array( "Database" =>$databaseName, "UID" =>$userName, "PWD" =>$password ));連接后,即可通過SQLSRV語句來執行SQL Server數據庫操作。如以下示例代碼:
$sql = "SELECT * FROM SampleTable"; $stmt = sqlsrv_query($conn, $sql); if($stmt === false){ die(print_r(sqlsrv_errors(), true)); } while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { echo $row['ColumnName1'].", ".$row['ColumnName2'].PHP_EOL; }通過以上示例代碼,可以看到使用SQLSRV擴展,代碼簡潔易懂,而且代碼執行效率也比ODBC高。 此外,SQLSRV擴展也支持面向對象的寫法。比如以下示例:
$serverName = "tcp:SampleServer.database.windows.net,1433"; $connectionOptions = array( "Database" =>"SampleDB", "UID" =>"SampleUID", "PWD" =>"SamplePWD" ); $conn = sqlsrv_connect($serverName, $connectionOptions); if($conn === false) { die(print_r(sqlsrv_errors(), true)); } $sql = "SELECT * FROM SampleTable"; $stmt = sqlsrv_query($conn, $sql); if($stmt === false) { die(print_r(sqlsrv_errors(), true)); } while ($row = sqlsrv_fetch_object($stmt)) { echo $row->ColumnName1.", ".$row->ColumnName2.PHP_EOL; }使用面向對象寫法,更加容易閱讀和理解。同時,也能更好的配合PHP中的其他面向對象方法或框架進行開發。 總結起來,使用SQLSRV擴展能夠極大節省開發者的開發時間,同時也更加方便、易用。尤其是在各種PHP框架中,能夠充分發揮其應有的作用。