From e50b9c943fddf781f980bba78d1ce927a5dc11b4 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 15 Feb 2018 14:29:30 +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. Built from https://develop.svn.wordpress.org/trunk@42716 git-svn-id: http://core.svn.wordpress.org/trunk@42544 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/version.php | 2 +- wp-includes/wp-db.php | 26 ++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/wp-includes/version.php b/wp-includes/version.php index b9362fb329..b4f17c1a41 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '5.0-alpha-42715'; +$wp_version = '5.0-alpha-42716'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php index 1e5fda6743..901cf10bac 100644 --- a/wp-includes/wp-db.php +++ b/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 ); }