次の方法で共有


単一のクエリを実行する方法

SQL Server Driver for PHP を使用して単一のクエリを実行する場合は sqlsrv_query 関数を使用する必要があります。sqlsrv_query 関数を使用すると、コーディングを最小限に抑えてクエリを効率的に実行できます。この関数では、ステートメントの準備と実行の両方が行われ、この関数を使用してパラメータ化されたクエリを実行できます。このトピックでは、sqlsrv_query 関数を使用して 1 回限りのクエリを実行する方法について説明します。

準備されたステートメントを複数回実行する方法の詳細については、「クエリを複数回実行する方法」を参照してください。

次の例では、AdventureWorks データベースの Sales.SalesOrderDetail テーブルに単一の行を挿入します。この例では、SQL Server と AdventureWorks データベースがローカル コンピュータにインストールされていることを前提としています。この例をコマンド ラインから実行した場合、すべての出力はコンソールに書き込まれます。

注意

次の例では、1 回限りのステートメントの実行に sqlsrv_query を使用する方法を示すために INSERT ステートメントが使用されていますが、この概念はすべての 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);
?>

参照

その他のリソース

設計上の注意事項
API リファレンス (SQL Server Driver for PHP)