From 7948dbf0c11182a86e690ffeea7df7230129fd15 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 15 Feb 2018 14:28:13 +0000 Subject: [PATCH] Database: If both `WP_DEBUG` and `WP_DEBUG_DISPLAY` are true, display a more specific error message in `wpdb::bail()`. Props sivel, Mte90, SergeyBiryukov. Fixes #13657. git-svn-id: https://develop.svn.wordpress.org/trunk@42716 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/wp-db.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/wp-db.php b/src/wp-includes/wp-db.php index 1e5fda6743..901cf10bac 100644 --- a/src/wp-includes/wp-db.php +++ b/src/wp-includes/wp-db.php @@ -3316,15 +3316,37 @@ class wpdb { * @return false|void */ public function bail( $message, $error_code = '500' ) { - if ( ! $this->show_errors ) { + if ( $this->show_errors ) { + $error = ''; + + if ( $this->use_mysqli ) { + if ( $this->dbh instanceof mysqli ) { + $error = mysqli_error( $this->dbh ); + } elseif ( mysqli_connect_errno() ) { + $error = mysqli_connect_error(); + } + } else { + if ( is_resource( $this->dbh ) ) { + $error = mysql_error( $this->dbh ); + } else { + $error = mysql_error(); + } + } + + if ( $error ) { + $message = '

' . $error . "

\n" . $message; + } + + wp_die( $message ); + } else { if ( class_exists( 'WP_Error', false ) ) { $this->error = new WP_Error( $error_code, $message ); } else { $this->error = $message; } + return false; } - wp_die( $message ); }