English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_sqlstate()関数は、最後のエラーのSQLSTATEエラーコードを返します。
mysqli_sqlstate()関数は、最後のSQL操作のエラーを示すSQLSTATEエラーコードを含む文字列を返します。エラーコードは 5 文字で構成され、'00000'はエラーが発生していないことを示します。エラーコードはANSI SQLおよびODBCで定義されています。
注意: 注:すべてのMySQLエラーがSQLSTATEにマッピングされていないため、マッピングされていないエラーメッセージはHY000(総合エラー)で表示されます。
mysqli_sqlstate($con)
番号 | パラメータ及び説明 |
---|---|
1 | con(必須) これはMySQL Serverとの接続を示すオブジェクトです。 |
PHP mysqli_sqlstate()関数は、最後のMySQL操作中に発生したSQLSTATEエラーを示す文字列値を返します。エラーがない場合、この関数は00000。
この関数は最初にPHPバージョン5に導入され、すべての上位バージョンで使用できます。
以下の例では、mysqli_sqlstate()関数の使用法(手続き型スタイル)-
<?php //接続を確立する $con = mysqli_connect("localhost", "root", "password", "mydb"); //テーブルのすべてのレコードを検索するクエリ mysqli_query($con, "Select * from WrongTable"); //SQL State $state = mysqli_sqlstate($con); print("SQL状態エラー: ". $state); //接続を閉じます mysqli_close($con); ?>
出力結果
SQL状態エラー: 42S02
面向オブジェクトスタイルでは、この関数の構文は以下の通りです$con-> sqlstate。以下は、面向オブジェクトスタイルでのこの関数の例です-
<?php //接続を確立する $con = new mysqli("localhost", "root", "password", "mydb"); //employeeテーブルのすべてのレコードを検索するクエリ $con -> query("Select FIRST_NAME, LAST_NAME, AGE form employee"); //SQL State $state = $con-> sqlstate; print("SQL状態エラー: ". $state); //接続を閉じます $con -> close(); ?>
出力結果
SQL状態エラー: 42000
以下にmysqli_sqlstate()関数の別の例-
<?php //接続を確立する $con = mysqli_connect("localhost", "root", "password", "mydb"); //employeeテーブルのすべての行を選択するクエリを検索します mysqli_query($con, "SELECT * FROM employee"); print("SQL State Error: " . mysqli_sqlstate($con) . "\n"); //employeeテーブルの行を更新するクエリを検索します mysqli_query($con, "UPDATE employee SET INCOME=INCOME+5000 WHERE FIRST_NAME IN (*); print("SQL State Error: " . mysqli_sqlstate($con) . "\n"); //employeeテーブルに行を挿入するクエリを検索します mysqli_query($con, "INSERT INTO employee VALUES (Archana, 'Mohonthy', 30, 'M', 13000, 106); print("SQL State Error: " . mysqli_sqlstate($con) . "\n"); //接続を閉じます mysqli_close($con); ?>
出力結果
SQL State Error: 00000 SQL State Error: 42000 SQL State Error: 42S22
最後の MySQL 操作の SQLSTATE エラーコードを返します:
<?php $connection_mysql = mysqli_connect("localhost", "root", "password", "mydb"); if (mysqli_connect_errno($connection_mysql)){ echo "MySQL接続失敗: " . mysqli_connect_error(); } //仮にデータベースmydbにPersonsという名前のテーブルがあると仮定します $sql = "CREATE TABLE Persons (Firstname VARCHAR(30),Lastname VARCHAR(30),Age INT)"; if (!mysqli_query($connection_mysql,$sql)){ echo "SQLSTATE error: " . mysqli_sqlstate($connection_mysql); } mysqli_close($connection_mysql); ?>
出力結果
SQLSTATE error: 42S01