English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция mysqli_warning_count() возвращает количество предупреждений последнего выполненного запроса в соединении.
Если ваша последняя функция MySQLi вызывала выполнение MySQL запроса и она генерировала какие-либо ошибки. Функция выполняет: подсчет количества ошибок, генерируемых последним выполненным запросом, и возвращает результат.
mysqli_warning_count($con)
Номер | Параметры и описание |
---|---|
1 | con(обязателен) Это объект, представляющий соединение с сервером MySQL. |
Функция 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()Использование функции (по стилю procedural programming)-
<?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(" Warnungszahl: ".$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(" Warnungszahl: ".$count); //Закрытие соединения mysqli_close($con); ?>
Результат вывода
Warnungszahl: 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(" Warnungszahl: ".$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 ID вставки: (несколько вставок) 6 ID вставки (обновляющий запрос): 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('Ошибка подключения ('.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 Предупреждение (1265): данные обрезаны для столбца 'Name' в строке 1