PHP sqlsrv 查詢介紹
在PHP中,我們經常需要查詢數據庫來獲取數據,sqlsrv是一個方便的擴展來查詢Microsoft SQL Server數據庫。本文將介紹如何使用sqlsrv查詢數據并展示一些常用的用例。
連接到數據庫
使用sqlsrv擴展來連接到數據庫非常容易。以下是一個基本的示例:
<?php
$serverName = "localhost\SQLEXPRESS";
$connectionOptions = array(
"Database" => "example_db",
"Uid" => "example_username",
"PWD" => "example_password"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
} else {
echo "Connected!";
}
?>
該腳本將使用sqlsrv_connect函數連接到本地的SQL Server實例,并選擇名稱為example_db的數據庫。如果連接失敗,它將輸出連接錯誤。
獲取數據
在連接到數據庫之后,我們可以使用以下代碼來獲取數據:
<?php
$query = "SELECT * FROM example_table";
$stmt = sqlsrv_query($conn, $query);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
print_r($row);
}
?>
該腳本將使用sqlsrv_query函數來執行SQL查詢,選擇名為example_table的表。如果查詢失敗,它將輸出查詢錯誤。然后,它將使用sqlsrv_fetch_array函數來獲取結果集中的行,并輸出它們。
使用參數化查詢
參數化查詢可以防止SQL注入攻擊,并提高性能。以下是一個使用sqlsrv_prepare函數進行參數化查詢的示例:
<?php
$query = "SELECT * FROM example_table WHERE example_col = ?";
$params = array("example_value");
$stmt = sqlsrv_prepare($conn, $query, $params);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
$result = sqlsrv_execute($stmt);
if ($result === false) {
die(print_r(sqlsrv_errors(), true));
}
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
print_r($row);
}
?>
該腳本將使用sqlsrv_prepare函數進行參數化查詢,使用?作為參數占位符。然后,它將使用sqlsrv_execute函數執行查詢,并將結果集中的行輸出。
使用IN子句查詢
IN子句可用于查詢結果集中包含特定值的行。以下是一個使用IN子句進行查詢的示例:
<?php
$query = "SELECT * FROM example_table WHERE example_col IN (?, ?, ?)";
$params = array("value1", "value2", "value3");
$stmt = sqlsrv_prepare($conn, $query, $params);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
$result = sqlsrv_execute($stmt);
if ($result === false) {
die(print_r(sqlsrv_errors(), true));
}
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
print_r($row);
}
?>
該腳本將使用IN子句查詢名稱為example_table的表中example_col列包含值value1、value2和value3的行,并輸出這些行。
關閉連接
在完成查詢后,我們需要關閉與數據庫的連接。以下是一個使用sqlsrv_close函數關閉連接的示例:
<?php
sqlsrv_close($conn);
?>
該腳本將使用sqlsrv_close函數關閉與數據庫的連接。
結論
使用sqlsrv查詢Microsoft SQL Server數據庫非常容易,只需要使用一些簡單的代碼就可以獲取所需的數據。本文介紹了連接到數據庫、獲取數據、使用參數化查詢、使用IN子句進行查詢以及關閉連接的一些示例。我們希望本文對您有所幫助。