summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-11-12 14:42:37 -0800
committerTim Almdal <tnalmdal@shaw.ca>2009-11-12 14:42:37 -0800
commit393896a7010bf2da19674aa6a63a693a0d800233 (patch)
tree10f1705ebdfa1db45d327851a340ef05e42f072c
parenta5a8cfd1bc7cd03c224c731c3ff433eec033457d (diff)
Initialize the database config with the port number if it is specified. Also set it up so the mysqli constructor will split it into host and port for the call to the mysqli constructor. Fixes ticket: #780
-rw-r--r--installer/cli.php2
-rw-r--r--installer/database_config.php2
-rw-r--r--installer/installer.php6
-rw-r--r--installer/web.php1
4 files changed, 7 insertions, 4 deletions
diff --git a/installer/cli.php b/installer/cli.php
index 182c3d26..f736ffcb 100644
--- a/installer/cli.php
+++ b/installer/cli.php
@@ -95,7 +95,7 @@ function parse_cli_params() {
$config["dbname"] = $argv[++$i];
break;
case "-h":
- $config["host"] = $argv[++$i];
+ list ($config["host"], $config["port"]) = explode(":", $argv[++$i]);
break;
case "-u":
$config["user"] = $argv[++$i];
diff --git a/installer/database_config.php b/installer/database_config.php
index 0f04b95c..8abf35e7 100644
--- a/installer/database_config.php
+++ b/installer/database_config.php
@@ -33,7 +33,7 @@ $config['default'] = array(
'user' => '<?php print $user ?>',
'pass' => '<?php print str_replace("'", "\\'", $password) ?>',
'host' => '<?php print $host ?>',
- 'port' => false,
+ 'port' => <?php if (!empty($port)): ?>'<?php print $port ?>' <?php else: ?>false<?php endif ?>,
'socket' => false,
'database' => '<?php print $dbname ?>'
),
diff --git a/installer/installer.php b/installer/installer.php
index 70afc440..3b1716e2 100644
--- a/installer/installer.php
+++ b/installer/installer.php
@@ -77,7 +77,8 @@ class installer {
// counterparts.
if (!function_exists("mysql_query")) {
function mysql_connect($host, $user, $pass) {
- installer::$mysqli = new mysqli($host, $user, $pass);
+ list ($host, $port) = explode(":", $host);
+ installer::$mysqli = new mysqli($host, $user, $pass, $port);
// http://php.net/manual/en/mysqli.connect.php says to use mysqli_connect_error() instead of
// $mysqli->connect_error because of bugs before PHP 5.2.9
$error = mysqli_connect_error();
@@ -97,7 +98,8 @@ class installer {
}
}
- return @mysql_connect($config["host"], $config["user"], $config["password"]);
+ $host = empty($config["port"]) ? $config['host'] : "{$config['host']}:{$config['port']}";
+ return @mysql_connect($host, $config["user"], $config["password"]);
}
static function select_db($config) {
diff --git a/installer/web.php b/installer/web.php
index c46f072a..65233b31 100644
--- a/installer/web.php
+++ b/installer/web.php
@@ -38,6 +38,7 @@ if (installer::already_installed()) {
"dbname" => $_POST["dbname"],
"prefix" => $_POST["prefix"],
"type" => function_exists("mysqli_set_charset") ? "mysqli" : "mysql");
+ list ($config["host"], $config["port"]) = explode(":", $config["host"]);
if (!installer::connect($config)) {
$content = render("invalid_db_info.html.php");