Hiển thị lỗi truy vấn php

Báo lỗi là điều cần thiết nhất trong lập trình. Một lập trình viên thực sự bị mù nếu họ không thể nhìn thấy các lỗi xảy ra trong quá trình thực thi tập lệnh. Vì vậy, điều rất quan trọng là phải định cấu hình báo cáo lỗi cho mã của bạn đúng cách, bao gồm cả các tương tác với cơ sở dữ liệu

Theo mặc định, khi bạn đang chạy mysqli_query[] hoặc - tốt nhất là - prepare[]/bind[]/execute[], mysqli sẽ chỉ âm thầm trả về

Fatal error: Uncaught exception 'mysqli_sql_exception'
with message 'You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near
'apparently not valid SQL string' at line 1' in /home/www/test.php:16
Stack trace:
#0 /home/www/init.php[16]: mysqli->query['apparently not ...']
#1 /home/www/test.php[2]: include['/home/www/...']
#2 {main}
 thrown in /home/www/init.php on line 16
0 nếu một truy vấn không thành công, không cho bạn biết lý do

Bạn sẽ chỉ nhận thấy lỗi khi lệnh sau, khi cố gắng sử dụng kết quả truy vấn, sẽ phát sinh lỗi, chẳng hạn như

Cảnh báo. mysqli_fetch_assoc[] dự kiến ​​tham số 1 là mysqli_result, boolean đã cho

Thật không may, thông báo lỗi này không cho bạn biết vấn đề thực tế. Nó chỉ nói thẳng rằng truy vấn của bạn không thành công và không có gì khác

Nó xảy ra bởi vì theo mặc định, mysqli được cấu hình để giữ im lặng nếu một truy vấn trả về lỗi. Vì vậy, bạn có thể nói đó là một hành vi cực kỳ bất tiện

May mắn thay, mysqli có thể được cấu hình để ném PHP

Fatal error: Uncaught exception 'mysqli_sql_exception'
with message 'You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near
'apparently not valid SQL string' at line 1' in /home/www/test.php:16
Stack trace:
#0 /home/www/init.php[16]: mysqli->query['apparently not ...']
#1 /home/www/test.php[2]: include['/home/www/...']
#2 {main}
 thrown in /home/www/init.php on line 16
1 trong trường hợp có lỗi mysql. Điều đó có nghĩa là một lỗi PHP sẽ được đưa ra tự động mỗi khi một truy vấn trả về lỗi mà bạn không cần bất kỳ nỗ lực nào

Hãy xem một cuộc biểu tình nhỏ

// first of all set PHP error reporting in general
// in order to be sure we will see every error occurred in the script
ini_set['display_errors',1];
error_reporting[E_ALL];

/*** THIS! ***/
mysqli_report[MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT];
/*** ^^^^^ ***/
$db = $mysqli = new mysqli[$host, $user, $pass, $database];

$res = $db->query["apparently not a valid SQL statement"];
$res->fetch_assoc[];

Và chạy lại tập lệnh của bạn. Ái chà. Một lỗi xuất hiện trong một làn khói, giải thích vấn đề là gì

Fatal error: Uncaught exception 'mysqli_sql_exception'
with message 'You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near
'apparently not valid SQL string' at line 1' in /home/www/test.php:16
Stack trace:
#0 /home/www/init.php[16]: mysqli->query['apparently not ...']
#1 /home/www/test.php[2]: include['/home/www/...']
#2 {main}
 thrown in /home/www/init.php on line 16

Như bạn có thể thấy, đây là một thông tin khá chi tiết, bao gồm cả phần sai của truy vấn và thậm chí cả dấu vết ngăn xếp giúp bạn tìm một chức năng cụ thể được gọi là truy vấn sai

Vì vậy, một lần nữa. chỉ cần đảm bảo rằng bạn luôn có dòng thần kỳ này trước ngày 12 tháng 12 trong tất cả các kịch bản của mình

mysqli_report[MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT];

Phải làm gì với thông báo lỗi bạn nhận được?

Nó phải là một phản xạ giật đầu gối để sao chép và dán thông báo lỗi trong tìm kiếm của Google. Nó sẽ dẫn bạn đến một số câu hỏi về Stack Overflow liên quan đến vấn đề cụ thể này với nhiều câu trả lời kèm theo giải pháp

Tuy nhiên, có một khả năng khác. Bạn có thể thử đọc thông báo lỗi mà bạn nhận được. Thông thường, thông báo lỗi giải thích khá đơn giản, lỗi là gì. Tuy nhiên, một số lỗi có thể khó hiểu. Bạn phải hiểu một số cân nhắc được sử dụng trong thông báo lỗi Mysql

Hàm mysqli_error[] / mysqli. $error trả về mô tả lỗi cuối cùng cho lệnh gọi hàm gần đây nhất, nếu có

cú pháp

Phong cách hướng đối tượng

string $mysqli->error;

phong cách thủ tục

string mysqli_error [ mysqli $link ]

Tham số

TênMô tảYêu cầu/Liên kết tùy chọnMột mã định danh liên kết được trả về bởi mysqli_connect[] hoặc mysqli_init[]Chỉ bắt buộc đối với kiểu thủ tục và Tùy chọn đối với kiểu hướng đối tượng

Hàm mysqli_error[] trả về mô tả lỗi xảy ra trong lần gọi hàm MySQLi cuối cùng

cú pháp

mysqli_error[$con]

Thông số

Sr. STT Thông số và Mô tả 1

lừa đảo [Bắt buộc]

Đây là một đối tượng đại diện cho một kết nối đến MySQL Server

Giá trị trả về

Hàm mysqli_error[] trong PHP trả về một giá trị chuỗi đại diện cho mô tả lỗi từ lệnh gọi hàm MySQLi cuối cùng. Nếu không có lỗi thì hàm này trả về một chuỗi rỗng

Phiên bản PHP

Chức năng này lần đầu tiên được giới thiệu trong PHP Phiên bản 5 và hoạt động trong tất cả các phiên bản sau

Ví dụ

Ví dụ sau minh họa cách sử dụng hàm mysqli_error[] [theo kiểu thủ tục] −

Điều này sẽ tạo ra kết quả sau -

Error Occurred: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FORM employee' at line 1

Ví dụ

Trong kiểu hướng đối tượng, cú pháp của hàm này là $con ->error. Sau đây là ví dụ về hàm này theo kiểu hướng đối tượng -

Làm cách nào để hiển thị lỗi truy vấn trong PHP?

Để nhận được thông báo lỗi, chúng ta phải sử dụng một hàm khác mysqli_error[] để in thông báo lỗi do cơ sở dữ liệu MySQL trả về sau khi thực hiện truy vấn . Đây là cách in thông báo lỗi. tiếng vang mysqli_error[]; .

Làm cách nào để tìm lỗi trong truy vấn chèn trong PHP?

Nếu kết nối không thành công, $conn sẽ không phải là đối tượng kết nối mysqli và sẽ không có chức năng/phương thức phương thức connect_error. Sau $conn = mysqli_connect[ [như được hiển thị trong mã của bạn], bạn cần phải test if[. $ conn]{. Hãy thử echo $vals; . ..

Làm cách nào để kiểm tra lỗi truy vấn trong MySQL?

Chúng tôi có thể in thông báo lỗi bằng cách sử dụng hàm mysql mysql_error[] . Hàm này trả về thông báo lỗi liên quan đến truy vấn được thực hiện gần đây nhất. Vì vậy, bạn nên kiểm tra lỗi trước khi chuyển sang truy vấn tiếp theo. Chúng tôi thậm chí có thể thêm số lỗi do mysql trả về vào thông báo lỗi này.

Làm cách nào để hiển thị thông báo lỗi trong PHP MySQL?

Cách nhanh nhất để hiển thị tất cả lỗi và cảnh báo php là thêm những dòng này vào tệp mã PHP của bạn. ini_set['lỗi_hiển_thị', 1];

Chủ Đề