From c393aa71e3e8b55e5459bceb16eb71a48a26c877 Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Fri, 28 Feb 2014 23:55:00 -0400 Subject: [PATCH] Fix __toString method of DatabaseMysqli The superclass was casting mConn to string. For Mysql class this is just the resource number. However for mysqli objects, that is a fatal. thread_id seemed like the most convinenent id-ish number to return instead. Only really noticeable if you have $wgDebugTransactions = true; Change-Id: I014bb7ab81d18c5bd07a267939b66a0a6161eb8d --- includes/db/DatabaseMysqli.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/includes/db/DatabaseMysqli.php b/includes/db/DatabaseMysqli.php index e202f8a926..635909cc65 100644 --- a/includes/db/DatabaseMysqli.php +++ b/includes/db/DatabaseMysqli.php @@ -281,4 +281,18 @@ class DatabaseMysqli extends DatabaseMysqlBase { protected function mysqlPing() { return $this->mConn->ping(); } + + /** + * Give an id for the connection + * + * mysql driver used resource id, but mysqli objects cannot be cast to string. + */ + public function __toString() { + if ( $this->mConn instanceof Mysqli ) { + return (string)$this->mConn->thread_id; + } else { + // mConn might be false or something. + return (string)$this->mConn; + } + } } -- 2.20.1