English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基础教程

PHP 高级教程

PHP と MySQL

PHP リファレンスマニュアル

PHP mysqli_sqlstate()関数の使用法および例

PHP MySQLi 参考マニュアル

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バージョン

この関数は最初に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

PHP MySQLi 参考マニュアル