sqlsrv_query
準備及執行陳述式。
注意
這個函數是要當做一次查詢來執行。如需詳細資訊,請參閱<如何:執行單一查詢>。
語法
sqlsrv_query( resource $conn, string $tsql [, array $params [, array $options]])
參數
$conn:與準備的陳述式有關聯的連接資源。
$tsql:對應至準備之陳述式的 Transact-SQL 運算式。
$params [選擇性]:對應至參數化查詢內之參數的值 array。此陣列的每一個元素都可以是以下其中一項:
常值。
PHP 變數。
具有以下結構的 array:
array($value [, $direction [, $phpType [, $sqlType]]])
下表是此陣列之每一個元素的描述:
元素 描述 $value
常值、PHP 變數或是 PHP 傳址 (by-reference) 變數。
$direction[選擇性]
其中一個用來指示參數方向的 SQLSRV_PARAM_* 常數:SQLSRV_PARAM_IN、SQLSRV_PARAM_OUT、SQLSRV_PARAM_INOUT。預設值為 SQLSRV_PARAM_IN。
如需有關 PHP 常數的詳細資訊,請參閱<SQLSRV 常數>。
$phpType[選擇性]
指定傳回值之 PHP 資料類型的 SQLSRV_PHPTYPE_* 常數。
$sqlType[選擇性]
指定輸入值之 SQL Server 資料類型的 SQLSRV_SQLTYPE_* 常數。
$options [選擇性]:設定查詢屬性的關聯陣列。支援的索引鍵如下:
索引鍵 | 支援的值 | 描述 |
---|---|---|
QueryTimeout |
正整數值。 |
設定查詢逾時 (以秒為單位)。根據預設,驅動程式將會無限期等候結果。 |
SendStreamParamsAtExec |
true 或false 預設值為 true。 |
設定驅動程式在執行時傳送所有資料流資料 (true) 或是以區塊傳送資料流資料 (false)。根據預設,此值設定為 true。如需詳細資訊,請參閱<sqlsrv_send_stream_data>。 |
Scrollable |
SQLSRV_CURSOR_FORWARD SQLSRV_CURSOR_STATIC SQLSRV_CURSOR_DYNAMIC SQLSRV_CURSOR_KEYSET |
SQL Server Driver for PHP 1.1 版新增了這個索引鍵。 如需有關這些值的詳細資訊,請參閱<指定資料指標類型和選取資料列>。 |
傳回值
陳述式資源。如果無法建立及 (或) 執行此陳述式,便會傳回 false。
範例
底下範例會更新 AdventureWorks 資料庫之 Sales.SalesOrderDetail 資料表中的欄位。此範例假設 SQL Server 和 AdventureWorks 資料庫已經安裝在本機電腦上。當從命令列執行此範例時,所有輸出都會寫入主控台。
<?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 = "UPDATE Sales.SalesOrderDetail
SET OrderQty = ( ?)
WHERE SalesOrderDetailID = ( ?)";
/* Assign literal parameter values. */
$params = array( 5, 10);
/* Execute the query. */
if( sqlsrv_query( $conn, $tsql, $params))
{
echo "Statement executed.\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Free connection resources. */
sqlsrv_close( $conn);
?>