mysqli_warning_count()函數(shù)返回連接中的最后一個(gè)查詢(xún)的警告數(shù)量。
如果您的最后一次MySQLi函數(shù)調(diào)用執(zhí)行MySQL查詢(xún),并且它是否生成任何錯(cuò)誤。 函數(shù)的作用是:統(tǒng)計(jì)上一次執(zhí)行的查詢(xún)生成的錯(cuò)誤數(shù),并返回結(jié)果。
mysqli_warning_count($con)
序號(hào) | 參數(shù)及說(shuō)明 |
---|---|
1 | con(必需) 這是一個(gè)表示與MySQL Server的連接的對(duì)象。 |
PHP mysqli_warning_count()函數(shù)返回一個(gè)整數(shù)值,該整數(shù)值表示在執(zhí)行上一個(gè)查詢(xún)期間生成的警告數(shù)量。如果在上一次執(zhí)行期間沒(méi)有警告,則此函數(shù)返回0
此函數(shù)最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。
假設(shè)我們創(chuàng)建了一個(gè)名為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()函數(shù)的用法(面向過(guò)程風(fēng)格)-
<?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); //警告數(shù) $count = mysqli_warning_count($con); print("警告數(shù): ".$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); //警告數(shù) $count = mysqli_warning_count($con); print("警告數(shù): ".$count); //關(guān)閉連接 mysqli_close($con); ?>
輸出結(jié)果
警告數(shù): 1 警告數(shù): 2
在面向?qū)ο箫L(fēng)格中,此函數(shù)的語(yǔ)法為$con->warning_count,其中$con是連接對(duì)象-
<?php //建立連接 $con = new mysqli("localhost", "root", "password", "mydb"); //在employee表中插入記錄 $con -> query("INSERT IGNORE into emp values(1, 'Sanjay', NULL, DATE('1981-12-05'), 2566)"); //警告數(shù) $count1 = $con->warning_count; print("警告數(shù): ".$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)"); //警告數(shù) $count2 = $con->warning_count; print("警告數(shù): ".$count2); //關(guān)閉連接 $con -> close(); ?>
輸出結(jié)果
警告數(shù): 0 警告數(shù): 2
以下是函數(shù)mysqli_warning_count()的另一個(gè)示例-
<?php //建立連接 $con = mysqli_connect("localhost", "root", "password", "mydb"); //正確查詢(xún)的警告計(jì)數(shù) mysqli_query($con, "SELECT * FROM EMP"); print("警告數(shù)(正確查詢(xún)): ".mysqli_warning_count($con)."\n"); //查詢(xún)刪除未知表 mysqli_query($con, "drop table if exists WrongTable"); print("警告數(shù)量: ".mysqli_warning_count($con)."\n"); //最后一條語(yǔ)句之前的警告 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("警告數(shù)(如果上次查詢(xún)之前包含錯(cuò)誤): ".mysqli_warning_count($con)."\n"); //關(guān)閉連接 mysqli_close($con); ?>
輸出結(jié)果
警告數(shù)(正確查詢(xún)): 0 Insert ID: (multiple inserts) 6 Insert ID (update query): 0 警告數(shù)(如果上次查詢(xún)之前包含錯(cuò)誤) 0
返回連接中的最后一個(gè)查詢(xún)的警告數(shù)量。
<?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("數(shù)據(jù)庫(kù)已連接" ."\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("查詢(xún)中的警告數(shù):".$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); ?>
輸出結(jié)果
數(shù)據(jù)庫(kù)已連接 查詢(xún)中的警告數(shù):1 Warning (1265): Data truncated for column 'Name' at row 1