diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php
index 6a8893a..0e50fbb 100644
--- a/wp-includes/wp-db.php
+++ b/wp-includes/wp-db.php
@@ -808,13 +808,18 @@ class wpdb {
 	 * @since 3.9.0
 	 *
 	 * @param array $modes Optional. A list of SQL modes to set.
+	 * @param resource|null $dbh Optional link identifier.
 	 */
-	public function set_sql_mode( $modes = array() ) {
+	public function set_sql_mode( $modes = array(), $dbh = null ) {
+		if ( is_null( $dbh ) ) {
+			$dbh = $this->dbh;
+		}
+
 		if ( empty( $modes ) ) {
 			if ( $this->use_mysqli ) {
-				$res = mysqli_query( $this->dbh, 'SELECT @@SESSION.sql_mode' );
+				$res = mysqli_query( $dbh, 'SELECT @@SESSION.sql_mode' );
 			} else {
-				$res = mysql_query( 'SELECT @@SESSION.sql_mode', $this->dbh );
+				$res = mysql_query( 'SELECT @@SESSION.sql_mode', $dbh );
 			}
 
 			if ( empty( $res ) ) {
@@ -858,9 +863,9 @@ class wpdb {
 		$modes_str = implode( ',', $modes );
 
 		if ( $this->use_mysqli ) {
-			mysqli_query( $this->dbh, "SET SESSION sql_mode='$modes_str'" );
+			mysqli_query( $dbh, "SET SESSION sql_mode='$modes_str'" );
 		} else {
-			mysql_query( "SET SESSION sql_mode='$modes_str'", $this->dbh );
+			mysql_query( "SET SESSION sql_mode='$modes_str'", $dbh );
 		}
 	}
 
@@ -1556,7 +1561,7 @@ class wpdb {
 			$this->set_charset( $this->dbh );
 
 			$this->ready = true;
-			$this->set_sql_mode();
+			$this->set_sql_mode( array(), $this->dbh );
 			$this->select( $this->dbname, $this->dbh );
 
 			return true;
