Php 在$wpdb中找不到行时,如何显示错误消息?

Php 在$wpdb中找不到行时,如何显示错误消息?,php,mysql,wordpress,row,Php,Mysql,Wordpress,Row,如果在$wpdb中找到预订ID,我想显示一条消息;如果在数据库中的任何行中都找不到预订ID,我想显示另一条消息 因此,我使用以下代码: $booking_ID = $_POST["booking_ID"]; $sql = "SELECT * FROM bookingTBL WHERE booking_ID LIKE '$booking_ID'"; $result = $wpdb->get_results($sql) or die(mysql_error()); if (count($res

如果在$wpdb中找到预订ID,我想显示一条消息;如果在数据库中的任何行中都找不到预订ID,我想显示另一条消息

因此,我使用以下代码:

$booking_ID = $_POST["booking_ID"];
$sql = "SELECT * FROM bookingTBL WHERE booking_ID LIKE '$booking_ID'";
$result = $wpdb->get_results($sql) or die(mysql_error());
if (count($result) > 0){
    echo 'Booking ID <b>'.$booking_ID.'</b>` is found';
    }
else {
    echo 'We could not fint the booking ID <b>'.$booking_ID.'</b><br/>Please refine your booking ID';
}
如果找到具有预订ID的行,则显示消息booking ID**GHT65VF**is found,但如果没有找到具有预订ID的行,则显示空白。没有任何消息

为什么呢

当没有任何输入预订ID的行时,如何显示未找到的消息?

首先,当$wpdb->get_results$sql未返回任何内容时,它将执行第二个block diemmysql_错误,该错误将显示致命错误

致命错误:未捕获错误:调用未定义函数mysql\u错误

如果您启用WP_调试模式,您将得到错误,因此这就是您得到空白屏幕的原因

其次,要获取错误日志,请参阅

所以你的完整代码应该是这样的

global $wpdb;
$booking_ID = $_POST["booking_ID"];
$sql = "SELECT * FROM bookingTBL WHERE booking_ID LIKE '$booking_ID'";
$result = $wpdb->get_results($sql);
//checking error msg
if ($wpdb->last_error !== '') {
    $wpdb->print_error();
    die('-- code execution discontinued --');
}
if (count($result) > 0) {
    echo 'Booking ID <b>' . $booking_ID . '</b>` is found';
} else {
    echo 'We could not fint the booking ID <b>' . $booking_ID . '</b><br/>Please refine your booking ID';
}
请注意:您应该使用prepare语句,并且应该清理输入

希望这有帮助

首先,当$wpdb->get_results$sql没有返回任何东西时,它将执行第二个block diemmysql_error,这将显示一个致命错误

致命错误:未捕获错误:调用未定义函数mysql\u错误

如果您启用WP_调试模式,您将得到错误,因此这就是您得到空白屏幕的原因

其次,要获取错误日志,请参阅

所以你的完整代码应该是这样的

global $wpdb;
$booking_ID = $_POST["booking_ID"];
$sql = "SELECT * FROM bookingTBL WHERE booking_ID LIKE '$booking_ID'";
$result = $wpdb->get_results($sql);
//checking error msg
if ($wpdb->last_error !== '') {
    $wpdb->print_error();
    die('-- code execution discontinued --');
}
if (count($result) > 0) {
    echo 'Booking ID <b>' . $booking_ID . '</b>` is found';
} else {
    echo 'We could not fint the booking ID <b>' . $booking_ID . '</b><br/>Please refine your booking ID';
}
请注意:您应该使用prepare语句,并且应该清理输入


希望这有帮助

非常感谢你的解释。这真的很有帮助,谢谢你的解释。这真的很有帮助