Tôi đang cố gắng để có được đầu của tôi xung quanh MySQli và tôi bối rối bởi báo cáo lỗi. Tôi đang sử dụng giá trị trả về của MySQLi 'chuẩn bị' tuyên bố để phát hiện sai sót khi thực hiện SQL, như thế này:Báo cáo lỗi báo cáo chuẩn bị MySQLi
$stmt_test = $mysqliDatabaseConnection->stmt_init();
if($stmt_test->prepare("INSERT INTO testtable VALUES (23,44,56)"))
{
$stmt_test->execute();
$stmt_test->close();
}
else echo("Statement failed: ". $stmt_test->error . "<br>");
Nhưng, là giá trị trở lại của báo cáo kết quả chuẩn bị chỉ phát hiện nếu có một lỗi trong preperation của câu lệnh SQL và không phát hiện lỗi thực thi? Nếu vậy tôi nên do đó thay đổi thực đơn hàng của mình lỗi cờ cũng như thế này:
if($stmt_test->execute()) $errorflag=true;
Và sau đó chỉ để được an toàn nên tôi cũng làm như sau sau khi báo cáo kết quả đã thực hiện:
if($stmt_test->errno) {$errorflag=true;}
. ..Or là tôi OK để bắt đầu với và giá trị trả về trên MySQLi chuẩn bị 'tuyên bố nắm bắt tất cả các lỗi liên quan đến việc thực hiện đầy đủ các truy vấn nó định nghĩa?
Cảm ơn C
Tại sao bạn nên sử dụng chuẩn bị/thực hiện() thay vì truy vấn() ở nơi đầu tiên khi không có phần biến trong chuỗi truy vấn của bạn? Hay đây chỉ là một ví dụ đơn giản? – VolkerK
Có, xin lỗi. Nó đã được đơn giản hóa để cho thấy làm thế nào tôi đã gặp khó khăn trong việc hiểu nơi để có được báo cáo lỗi dứt khoát từ một staement chuẩn bị. – Columbo