English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_warning_count()関数は、接続の最後のクエリの警告の数を返します。
最後のMySQLi関数呼び出しがMySQLクエリを実行し、エラーが生成されたかどうかを確認します。この関数の役割は、前回の実行で生成されたエラーカウントを統計し、結果を返すことです。
mysqli_warning_count($con)
序号 | パラメータ及び説明 |
---|---|
1 | con(必須) これはMySQL Serverとの接続を表すオブジェクトです。 |
PHP mysqli_warning_count()関数は、前回の実行中に生成された警告の数を示す整数値を返します。前回の実行で警告がなかった場合、この関数は0
この関数は最初にPHPバージョン5のバージョンから導入され、すべてのより高いバージョンで使用できます。
以下のように、Empという名前のテーブルを作成したと仮定します:
CREATE TABLE EMP( ID TINYINT, First_Name VARCHAR(50) Not NULL, Last_Name VARCHAR(10); Not NULL, Date_Of_Birth date, Salary Int(255); );
以下の例では、以下のことを示していますmysqli_warning_count()関数の使い方(オブジェクト指向スタイル)-
<?php //接続を確立する $con = mysqli_connect("localhost", "root", "password", "mydb"); //employeeテーブルにレコードを挿入する $sql = "INSERT IGNORE into emp values(";1, 'Sanjay', NULL, DATE('1981-12-05', 2566); mysqli_query($con, $sql); //警告数 $count = mysqli_warning_count($con); print("警告数: ".$count ."\n"); $sql = "INSERT IGNORE into emp values (";15, 'Swetha', 'Yellapragada', DATE('1990-11-25', 9986), (15, NULL, 'Prayaga', DATE('1990-11-25', 9986); mysqli_query($con, $sql); //警告数 $count = mysqli_warning_count($con); print("警告数: ".$count); //接続を閉じる mysqli_close($con); ?>
出力結果
警告数: 1 警告数: 2
オブジェクト指向スタイルでは、この関数の構文は以下の通りです$con->warning_count、その中で$conは接続オブジェクトです-
<?php //接続を確立する $con = new mysqli("localhost", "root", "password", "mydb"); //employeeテーブルにレコードを挿入する $con -> query("INSERT IGNORE into emp values(1, 'Sanjay', NULL, DATE('1981-12-05', 2566); //警告数 $count1 = $con->warning_count; print("警告数: ".$count1."\n"); //employeeテーブルにレコードを挿入する $con -> query("INSERT IGNORE into emp values(15, 'Swetha', 'Yellapragada', DATE('1990-11-25', 9986), (15, NULL, 'Prayaga', DATE('1990-11-25', 9986); //警告数 $count2 = $con->warning_count; print("警告数: ".$count2); //接続を閉じる $con -> close(); ?>
出力結果
警告数: 0 警告数: 2
以下は関数ですmysqli_warning_count()の別の例-
<?php //接続を確立する $con = mysqli_connect("localhost", "root", "password", "mydb"); //正しいクエリの警告カウント mysqli_query($con, "SELECT * FROM EMP"); print("警告数(正しいクエリ): ".mysqli_warning_count($con)."\n"); //未知のテーブルの削除クエリ mysqli_query($con, "drop table if exists WrongTable"); print("警告数: ".mysqli_warning_count($con)."\n"); //最後のステートメント前の警告 mysqli_query($con, "INSERT IGNORE into emp values(107, 'Sunitha', NULL, DATE('1981-12-05', 2566); mysqli_query($con, "INSERT IGNORE into emp values(7, 'Mohit', 'Sharma', DATE('1981-12-05', 2566); print("警告数(前回のクエリにエラーが含まれていた場合): ".mysqli_warning_count($con)."\n"); //接続を閉じる mysqli_close($con); ?>
出力結果
警告数(正しいクエリ): 0 Insert ID: (複数のインサート) 6 Insert ID(updateクエリ): 0 警告数(前回のクエリにエラーが含まれていた場合) 0
接続中の最後のクエリの警告数を返します。
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "mydb"; $conn = new mysqli($servername, $username, $password, $dbname); if (!$conn->real_connect($servername, $username, $password, $dbname)) { die('Connect Error ('. mysqli_connect_errno() . ') '. mysqli_connect_error()); } print("データベースに接続されました" . "\n"); mysqli_query($conn, "CREATE TABLE sample (ID INT, Name VARCHAR("20)); $query = "INSERT IGNORE INTO sample (id,name) VALUES(" 1,'Rajesh Ramayan Kootrapally')"; mysqli_query($conn, $query); $warnings = mysqli_warning_count($conn); print("クエリ中の警告数: ". $warnings. "\n"); if ($warnings) { if ($result = mysqli_query($conn, "SHOW WARNINGS")) { $row = mysqli_fetch_row($result); printf("%s (%d): %s\n", $row[0], $row[1], $row[2]); mysqli_free_result($result); } } mysqli_close($conn); ?>
出力結果
データベースに接続されました クエリ中の警告数:1 Warning (1265): データがカラム 'Name' で行 'truncated' で切り取られました 1