actually check for DB_PORT in installer, add better hints and use mysqli if available

This commit is contained in:
Andrew Dolgov 2013-04-18 16:06:03 +04:00
parent 1daf0f75fa
commit bbffc43e4f
3 changed files with 30 additions and 13 deletions

View File

@ -8,7 +8,7 @@
define('DB_USER', "fox"); define('DB_USER', "fox");
define('DB_NAME', "fox"); define('DB_NAME', "fox");
define('DB_PASS', "XXXXXX"); define('DB_PASS', "XXXXXX");
//define('DB_PORT', '5432'); // when neeeded, PG-only define('DB_PORT', ''); // usually 5432 for PostgreSQL, 3306 for MySQL
define('MYSQL_CHARSET', 'UTF8'); define('MYSQL_CHARSET', 'UTF8');
// Connection charset for MySQL. If you have a legacy database and/or experience // Connection charset for MySQL. If you have a legacy database and/or experience

View File

@ -88,7 +88,7 @@
<img src=\"../images/sign_info.svg\">$msg</div>"; <img src=\"../images/sign_info.svg\">$msg</div>";
} }
function db_connect($host, $user, $pass, $db, $type) { function db_connect($host, $user, $pass, $db, $type, $port) {
if ($type == "pgsql") { if ($type == "pgsql") {
$string = "dbname=$db user=$user"; $string = "dbname=$db user=$user";
@ -101,8 +101,8 @@
$string .= " host=$host"; $string .= " host=$host";
} }
if (defined('DB_PORT')) { if ($port) {
$string = "$string port=" . DB_PORT; $string = "$string port=" . $port;
} }
$link = pg_connect($string); $link = pg_connect($string);
@ -110,10 +110,15 @@
return $link; return $link;
} else if ($type == "mysql") { } else if ($type == "mysql") {
$link = mysql_connect($host, $user, $pass); if (function_exists("mysqli_connect")) {
if ($link) { return mysqli_connect($host, $user, $pass, $db, $port);
$result = mysql_select_db($db, $link);
if ($result) return $link; } else {
$link = mysql_connect($host, $user, $pass);
if ($link) {
$result = mysql_select_db($db, $link);
if ($result) return $link;
}
} }
} }
} }
@ -173,7 +178,12 @@
} }
return $result; return $result;
} else if ($type == "mysql") { } else if ($type == "mysql") {
$result = mysql_query($query, $link);
if (function_exists("mysqli_connect")) {
$result = mysqli_query($link, $query);
} else {
$result = mysql_query($query, $link);
}
if (!$result) { if (!$result) {
$query = htmlspecialchars($query); $query = htmlspecialchars($query);
if ($die_on_error) { if ($die_on_error) {
@ -254,17 +264,19 @@
<fieldset> <fieldset>
<label>Database name</label> <label>Database name</label>
<input name="DB_NAME" size="20" value="<?php echo $DB_NAME ?>"/> <input required name="DB_NAME" size="20" value="<?php echo $DB_NAME ?>"/>
</fieldset> </fieldset>
<fieldset> <fieldset>
<label>Host name</label> <label>Host name</label>
<input name="DB_HOST" placeholder="if needed" size="20" value="<?php echo $DB_HOST ?>"/> <input name="DB_HOST" size="20" value="<?php echo $DB_HOST ?>"/>
<span class="hint">If needed</span>
</fieldset> </fieldset>
<fieldset> <fieldset>
<label>Port</label> <label>Port</label>
<input name="DB_PORT" type="number" placeholder="if needed, PgSQL only" size="20" value="<?php echo $DB_PORT ?>"/> <input name="DB_PORT" type="number" size="20" value="<?php echo $DB_PORT ?>"/>
<span class="hint">Usually 3306 for MySQL or 5432 for PostgreSQL</span>
</fieldset> </fieldset>
<h2>Other settings</h2> <h2>Other settings</h2>
@ -327,7 +339,7 @@
<h2>Checking database</h2> <h2>Checking database</h2>
<?php <?php
$link = db_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_TYPE); $link = db_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_TYPE, $DB_PORT);
if (!$link) { if (!$link) {
print_error("Unable to connect to database using specified parameters."); print_error("Unable to connect to database using specified parameters.");

View File

@ -240,3 +240,8 @@ body.otp div.content {
display : inline-block; display : inline-block;
width : auto; width : auto;
} }
span.hint {
font-size : 10px;
color : gray;
}