次の方法で共有


sqlsrv_errors

最後に実行された sqlsrv 操作に関する拡張エラー情報や警告情報を返します。

以下の「パラメータ」に示されているパラメータ値のいずれかを使用して sqlsrv_errors 関数を呼び出すと、エラーや警告の情報を取得できます。

既定では、sqlsrv 関数の呼び出しで生成された警告はエラーとして扱われるため、sqlsrv 関数の呼び出しで警告が発生すると false が返されます。ただし、SQLSTATE 値 01000、01001、01003、および 01S02 に対応する警告は、エラーとして扱われません。

次のコード行は、上述の動作を無効にして、sqlsrv 関数の呼び出しで警告が生成されても false が返されないようにします。

sqlsrv_configure("WarningsReturnAsErrors", 0);

次のコード行は、動作を既定の動作に戻して、警告 (上述の例外を除く) がエラーとして扱われるようにします。

sqlsrv_configure("WarningsReturnAsErrors", 1);

この設定に関係なく、警告を取得できるのは、SQLSRV_ERR_ALL または SQLSRV_ERR_WARNINGS のいずれかのパラメータ値を使用して sqlsrv_errors を呼び出した場合だけです (詳細については以下の「パラメータ」を参照)。

構文

sqlsrv_errors( [int $errorsAndOrWarnings] )

パラメータ

$errorsAndOrWarnings [オプション]: 事前定義された定数。このパラメータは、次の表に示す値のいずれかになります。

説明

SQLSRV_ERR_ALL

最後の sqlsrv 関数の呼び出しで生成されたエラーと警告が返されます。

SQLSRV_ERR_ERRORS

最後の sqlsrv 関数の呼び出しで生成されたエラーが返されます。

SQLSRV_ERR_WARNINGS

最後の sqlsrv 関数の呼び出しで生成された警告が返されます。

パラメータの値を指定しない場合は、最後の sqlsrv 関数の呼び出しで生成されたエラーと警告の両方が返されます。

戻り値

配列の array または null。返される array の各 array はそれぞれ 3 つのキーと値のペアを格納します。次の表は、それぞれのキーとその説明の一覧です。

キー 説明

SQLSTATE

発生元が ODBC ドライバのエラーの場合は、ODBC によって返された SQLSTATE。ODBC の SQLSTATE 値については、「ODBC Error Codes (英語)」を参照してください。

発生元が SQL Server Driver for PHP のエラーの場合は、IMSSP という SQLSTATE。

発生元が SQL Server Driver for PHP の警告の場合は、01SSP という SQLSTATE。

code

発生元が SQL Server のエラーの場合は、SQL Server のネイティブ エラー コード。

発生元が ODBC ドライバのエラーの場合は、ODBC によって返されたエラー コード。

発生元が SQL Server Driver for PHP のエラーの場合は、SQL Server Driver for PHP のエラー コード。

message

エラーの説明。

数値キーの 0、1、および 2 を使用して配列の値にアクセスすることもできます。エラーや警告が発生していない場合は null が返されます。

次の例は、失敗したステートメントの実行中に発生したエラーを表示します (このステートメントは、InvalidColumName が、指定したテーブル内の有効な列名ではないために失敗します)。この例では、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 a query to select an invalid column name. */
$tsql = "SELECT InvalidColumnName FROM Sales.SalesOrderDetail";

/* Attempt execution. */
/* Execution will fail because of the invalid column name. */
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
      if( ($errors = sqlsrv_errors() ) != null)
      {
         foreach( $errors as $error)
         {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."\n";
            echo "code: ".$error[ 'code']."\n";
            echo "message: ".$error[ 'message']."\n";
         }
      }
}

/* Free connection resources */
sqlsrv_close( $conn);
?>

参照

概念

ドキュメントのコード例について

その他のリソース

API リファレンス (SQL Server Driver for PHP)