sqlsrv_query
ステートメントを準備して実行します。
注意
この関数は 1 回限りのクエリの実行に適しています。詳細については、「単一のクエリを実行する方法」を参照してください。
構文
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 参照変数。
$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」を参照してください。 |
スクロール可能 |
SQLSRV_CURSOR_FORWARD SQLSRV_CURSOR_STATIC SQLSRV_CURSOR_DYNAMIC SQLSRV_CURSOR_KEYSET |
このキーは、SQL Server Driver for PHP Version 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);
?>
参照
処理手順
パラメーター化されたクエリを実行する方法
データをストリームとして送信する方法
概念
その他のリソース
API リファレンス (SQL Server Driver for PHP)
設計上の注意事項
方向性のあるパラメーターの使用