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

PHP基本教程

PHP上級教程

PHP & MySQL

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

PHP mysqli_warning_count()関数の用法及び例

PHP MySQLi 参考手帳

mysqli_warning_count()関数は、接続の最後のクエリの警告の数を返します。

定義と用法

最後のMySQLi関数呼び出しがMySQLクエリを実行し、エラーが生成されたかどうかを確認します。この関数の役割は、前回の実行で生成されたエラーカウントを統計し、結果を返すことです。

構文

mysqli_warning_count($con)

パラメータ

序号パラメータ及び説明
1

con(必須)

これはMySQL Serverとの接続を表すオブジェクトです。

返り値

PHP mysqli_warning_count()関数は、前回の実行中に生成された警告の数を示す整数値を返します。前回の実行で警告がなかった場合、この関数は0

PHPバージョン

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

PHP MySQLi 参考手帳