diff --git a/lib/dml/mysqli_native_moodle_database.php b/lib/dml/mysqli_native_moodle_database.php index a27147a63a546..9d7b7670c323e 100644 --- a/lib/dml/mysqli_native_moodle_database.php +++ b/lib/dml/mysqli_native_moodle_database.php @@ -441,13 +441,10 @@ public function connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, array $dbop if ($dbhost and !empty($this->dboptions['dbpersist'])) { $dbhost = "p:$dbhost"; } - ob_start(); - $this->mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname, $dbport, $dbsocket); - $dberr = ob_get_contents(); - ob_end_clean(); - $errorno = @$this->mysqli->connect_errno; + $this->mysqli = @new mysqli($dbhost, $dbuser, $dbpass, $dbname, $dbport, $dbsocket); - if ($errorno !== 0) { + if ($this->mysqli->connect_errno !== 0) { + $dberr = $this->mysqli->connect_error; $this->mysqli = null; throw new dml_connection_exception($dberr); } diff --git a/lib/dmllib.php b/lib/dmllib.php index a2229b9f439ce..b315481a8358b 100644 --- a/lib/dmllib.php +++ b/lib/dmllib.php @@ -344,6 +344,11 @@ function setup_DB() { $DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, $CFG->dboptions); } catch (moodle_exception $e) { if (empty($CFG->noemailever) and !empty($CFG->emailconnectionerrorsto)) { + $body = "Connection error: ".$CFG->wwwroot. + "\n\nInfo:". + "\n\tError code: ".$e->errorcode. + "\n\tDebug info: ".$e->debuginfo. + "\n\tServer: ".$_SERVER['SERVER_NAME']." (".$_SERVER['SERVER_ADDR'].")"; if (file_exists($CFG->dataroot.'/emailcount')){ $fp = @fopen($CFG->dataroot.'/emailcount', 'r'); $content = @fread($fp, 24); @@ -352,7 +357,7 @@ function setup_DB() { //email directly rather than using messaging @mail($CFG->emailconnectionerrorsto, 'WARNING: Database connection error: '.$CFG->wwwroot, - 'Connection error: '.$CFG->wwwroot); + $body); $fp = @fopen($CFG->dataroot.'/emailcount', 'w'); @fwrite($fp, time()); } @@ -360,7 +365,7 @@ function setup_DB() { //email directly rather than using messaging @mail($CFG->emailconnectionerrorsto, 'WARNING: Database connection error: '.$CFG->wwwroot, - 'Connection error: '.$CFG->wwwroot); + $body); $fp = @fopen($CFG->dataroot.'/emailcount', 'w'); @fwrite($fp, time()); }