global $db, $path_to_root, $db_connections, $SysPrefs;
include ($path_to_root . "/config_db.php");
+
if ($company == -1)
$company = user_company();
///// 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 $fieldinfo->name;
}
+function db_set_collation($db, $fa_collation)
+{
+ return mysqli_query($db, "ALTER DATABASE COLLATE ".get_mysql_collation($fa_collation));
+}
+
+/*
+ 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)
{
+ global $db;
+
$db = mysqli_connect($connection["host"], $connection["dbuser"], $connection["dbpassword"]);
if (!mysqli_select_db($db, $connection["dbname"]))
{
- $sql = "CREATE DATABASE IF NOT EXISTS `" . $connection["dbname"] . "`";
+ $sql = "CREATE DATABASE IF NOT EXISTS `" . $connection["dbname"] . "`"
+ . " DEFAULT COLLATE '" . get_mysql_collation($connection["collation"]) . "'";
+
if (!mysqli_query($db, $sql) || !mysqli_select_db($db, $connection["dbname"]))
return 0;
+ } else {
+ if (!db_set_collation($db, $connection["collation"]))
+ {
+ return 0;
+ }
}
return $db;
}