will be shut down on June 1, 2019. At that point this instance will be unreachable and all data will be irrevocably deleted. More details at

Commit 32918bb7 authored by Brion Vibber's avatar Brion Vibber

Test for and use mysqli in installer, since that's what we use later, rather than mysql.

parent 2af12774
......@@ -51,7 +51,7 @@ abstract class Installer
public static $dbModules = array(
'mysql' => array(
'name' => 'MySQL',
'check_module' => 'mysql', // mysqli?
'check_module' => 'mysqli',
'installer' => 'mysql_db_installer',
'pgsql' => array(
......@@ -341,7 +341,6 @@ abstract class Installer
* @param string $password
* @return mixed array of database connection params on success, false on failure
* @fixme be consistent about using mysqli vs mysql!
* @fixme escape things in the connection string in case we have a funny pass etc
function Mysql_Db_installer($host, $database, $username, $password)
......@@ -349,14 +348,13 @@ abstract class Installer
$this->updateStatus("Starting installation...");
$this->updateStatus("Checking database...");
$conn = mysql_connect($host, $username, $password);
if (!$conn) {
$conn = mysqli_init();
if (!$conn->real_connect($host, $username, $password)) {
$this->updateStatus("Can't connect to server '$host' as '$username'.", true);
return false;
$this->updateStatus("Changing to database...");
$res = mysql_select_db($database, $conn);
if (!$res) {
if (!$conn->select_db($database)) {
$this->updateStatus("Can't change to database.", true);
return false;
......@@ -438,9 +436,9 @@ abstract class Installer
// FIXME: use PEAR::DB or PDO instead of our own switch
switch ($type) {
case 'mysqli':
$res = mysql_query($stmt, $conn);
$res = $conn->query($stmt);
if ($res === false) {
$error = mysql_error();
$error = $conn->error();
case 'pgsql':
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment