$_SESSION["wa_current_user"]->cur_con = $company;
$connection = $db_connections[$company];
+
+ $server = $connection["host"];
+ if (!empty($connection["port"]))
+ $server .= ":".$connection["port"];
- $db = mysql_connect($connection["host"], $connection["dbuser"], $connection["dbpassword"]);
- mysql_select_db($connection["dbname"], $db);
+ $db = mysql_connect($server, $connection["dbuser"], $connection["dbpassword"]);
+ mysql_select_db($connection["dbname"], $db);
///// From MySql release 5.6.6 the sql_mode is no longer empty as it was prior to
///// this release. Just for safety we make it empty for all 5.6 release and higher.
///// This non empty sql_mode values can interphere with FA, so all is set empty during
///// our sessions.
///// We are, however, investigating the existing code to be compatible in the future.
- db_query("SET sql_mode = '".SQL_MODE."'");
+ db_query("SET sql_mode = '".SQL_MODE."'");
/////
$SysPrefs->refresh();
return $db;
return mysql_field_name($result, $n);
}
+function db_set_collation($db, $fa_collation)
+{
+ return mysql_query("ALTER DATABASE COLLATE ".get_mysql_collation($fa_collation), $db);
+}
+
+/*
+ Create database for FA company. If database already exists,
+ just set collation to be sure nothing weird will happen later.
+*/
function db_create_db($connection)
{
- $db = mysql_connect($connection["host"] ,
- $connection["dbuser"], $connection["dbpassword"]);
+ $server = $connection["host"];
+ if (!empty($connection["port"]))
+ $server .= ":".$connection["port"];
+ $db = mysql_connect($server, $connection["dbuser"], $connection["dbpassword"]);
if (!mysql_select_db($connection["dbname"], $db))
{
- $sql = "CREATE DATABASE IF NOT EXISTS " . $connection["dbname"] . "";
+ $sql = "CREATE DATABASE IF NOT EXISTS `" . $connection["dbname"] . "`"
+ . " DEFAULT COLLATE '" . get_mysql_collation($connection["collation"]) . "'";
+
if (!mysql_query($sql) || !mysql_select_db($connection["dbname"], $db))
+ return 0;
+ } else
+ if (!db_set_collation($connection["collation"], $db))
return 0;
- }
+
return $db;
}