如何:執行單一查詢
當使用 SQL Server Driver for PHP 來執行單一查詢時,應該使用 sqlsrv_query 函數。sqlsrv_query 函數會提供一個簡化的方法來以最少的編碼執行查詢。這個函數會同時進行陳述式準備和陳述式執行的工作,而且可用來執行參數化查詢。本主題描述如何使用 sqlsrv_query 函數來執行一次性查詢。
如需有關多次執行已備妥之陳述式的詳細資訊,請參閱<如何:多次執行查詢>。
範例
在下列範例中,單一資料列會插入 AdventureWorks 資料庫的 Sales.SalesOrderDetail 資料表。此範例假設 SQL Server 和 AdventureWorks 資料庫已經安裝在本機電腦上。當從命令列執行此範例時,所有輸出都會寫入主控台。
注意
雖然下列範例使用 INSERT 陳述式來示範如何針對單次執行的陳述式使用 sqlsrv_query,但是此概念適用於任何 Transact-SQL 陳述式。
<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Set up the parameterized query. */
$tsql = "INSERT INTO Sales.SalesOrderDetail
(SalesOrderID,
OrderQty,
ProductID,
SpecialOfferID,
UnitPrice,
UnitPriceDiscount)
VALUES
(?, ?, ?, ?, ?, ?)";
/* Set parameter values. */
$params = array(75123, 5, 741, 1, 818.70, 0.00);
/* Prepare and execute the query. */
$stmt = sqlsrv_query( $conn, $tsql, $params);
if( $stmt )
{
echo "Row successfully inserted.\n";
}
else
{
echo "Row insertion failed.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>