English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_error_list()関数は最後に呼び出された関数のエラーリストを返します。
mysqli_error_list()関数は最後の MySQLi ファンクション呼び出し中に発生したエラーリストを返します。
mysqli_error_list($con)
序号 | パラメータ及び説明 |
---|---|
1 | con(必須) これはMySQL Serverとの接続を表すオブジェクトです。 |
PHP mysqli_error_list()関数は、最後のステートメントの実行中に発生したエラーリストを返します(各エラーは配列として)。
この関数は最初にPHPバージョン5から導入され、すべての上位バージョンで使用できます。
以下はその使い方の例を示していますmysqli_error_list()関数の使い方(手続き型スタイル)-
<?php //接続を確立 $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE Test(Name VARCHAR(10), AGE INT)"); //クエリを実行 $query = "INSERT into Test values('Raju', 25),('Rahman', 30),('Sri Rama Chandra Murthi', 25)"; mysqli_query($con, $query); //エラー $list = mysqli_error_list($con); print_r($list); //接続を閉じる mysqli_close($con); ?>
出力結果
配列 ( [0] => 配列 ( [errno] => 1406 [sqlstate] => 22001 [エラー] => 'Name'カラムで行の'Length'が長すぎます 3 ) )
オブジェクト指向のスタイルでは、この関数の文法は以下の通りです$con->error_list。以下はその関数のオブジェクト指向スタイルの例です-
<?php //接続を確立 $con = new mysqli("localhost", "root", "password", "mydb"); //employeeテーブルのすべての行を検索するクエリ $con -> query("SELECT * FROM wrong_table_name"); //Error $list = $con->error_list; print_r($list); //接続を閉じる $con -> close(); ?>
出力結果
配列 ( [0] => 配列 ( [errno] => 1146 [sqlstate] => 42S02 [エラー] => テーブル'mydb.wrong_table_name'は存在しません ) )
仮にemployeeという名前のテーブルがあり、以下のような内容を持っていると仮定します:
mysql> select * from employee; +------------+--------------+------+------+--------+ | FIRST_NAME | LAST_NAME | AGE | SEX | INCOME | +------------+--------------+------+------+--------+ | Vinay | Bhattacharya | 20 | M | 16000 | | Sharukh | Sheik | 25 | M | 13300 | | Trupthi | Mishra | 24 | F | 31000 | | Sheldon | Cooper | 25 | M | 2256 | | Sarmista | Sharma | 28 | F | 15000 | +------------+--------------+------+------+--------+ 5 セット内の行数 (0.06 sec)
以下に示しますmysqli_error_list()関数の別の例-
<?php //接続を確立 $con = mysqli_connect("localhost", "root", "password", "mydb"); //employeeテーブルのすべての行を選択するためのクエリ mysqli_query($con, "SELECT * FROM employee"); $list = mysqli_error_list($con); print_r($list); //Employeeテーブルの行を更新するためのクエリ mysqli_query($con, "UPDATE employee set INCOME=INCOME+5000 where FIRST_NAME in (*)"); $list = mysqli_error_list($con); print_r($list); //employeeテーブルに一行を挿入するためのクエリを検索 mysqli_query($con, "INSERT INTO employee VALUES (Archana, 'Mohonthy', 30, 'M', 13000, 106)"); $list = mysqli_error_list($con); print_r($list); //接続を閉じる mysqli_close($con); ?>
出力結果
配列 ( ) 配列 ( [0] => 配列 ( [errno] => 1064 [sqlstate] => 42000 [エラー] => あなたのSQL文にエラーがあります;使用する正しい構文については、あなたのMySQLサーバーのバージョンに対応するマニュアルを確認してください*)' at line 1 ) ) 配列 ( [0] => 配列 ( [errno] => 1136 [sqlstate] => 21S01 [エラー] => 列の数が行の値の数と一致しません 1 ) )