Additional db driver fixes, mysqli api set as default regardless of php version.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 16 Sep 2014 21:07:22 +0000 (23:07 +0200)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 16 Sep 2014 21:07:22 +0000 (23:07 +0200)
admin/db/maintenance_db.inc
includes/db/connect_db.inc
includes/db/connect_db_mysql.inc
includes/db/connect_db_mysqli.inc

index d2a726075076fff7f0196e2f1f081f048ade47fa..16434ecd163d46a2933014b4f6dd00797df62732 100644 (file)
@@ -299,7 +299,7 @@ function db_import($filename, $connection, $force=true, $init=true, $protect=fal
        $table_queries = array();
        $sql_errors = array();
 
-       $old_encoding = mysql_client_encoding();
+       $old_encoding = db_get_charset($db);
 
        ini_set("max_execution_time", "180");
        db_query("SET foreign_key_checks=0");
@@ -397,7 +397,7 @@ function db_import($filename, $connection, $force=true, $init=true, $protect=fal
                        $encoding = 'latin1'; // standard encoding on mysql client
        }
 
-       mysql_set_charset($encoding);
+       db_set_charset($db, $encoding);
 
 /*/    {       // for debugging purposes
        global $path_to_root;
@@ -460,7 +460,7 @@ function db_import($filename, $connection, $force=true, $init=true, $protect=fal
        db_query("SET foreign_key_checks=1");
        if ($delimiter != ';') db_query("delimiter ;"); // just for any case
 
-       mysql_set_charset($old_encoding); // restore connection encoding
+       db_set_charset($db, $old_encoding); // restore connection encoding
 
        if (count($sql_errors)) {
                if ($return_errors)
index e899eac786553a8d1abcb7036c3809d246111855..20ce648f08b2ee419530290ec7daa2949767a650 100644 (file)
 //$path_to_root="..";
 
 
-if (strncmp(phpversion(), "5.4", 3) >= 0) // mysql_... functions deprecated from php 5.5
+if (function_exists('mysqli_connect'))
        include_once("connect_db_mysqli.inc");
-else   
-       include_once("connect_db_mysql.inc");
+else
+       include_once("connect_db_mysql.inc"); // use deprecated mysql_* API as fallback on old servers
 
 function db_get_version()
 {
@@ -109,7 +109,7 @@ function db_fixed()
 /*
        Check database default charset.
 */
-function db_get_charset()
+function db_get_default_charset()
 {
        $result = db_query("SELECT @@character_set_database");
        $var = db_fetch($result);
index 4c225796be61f25cdbda7187bd424e7a9edda0ec..de03a643d6d728eaf6a916dc60c0b795df0fecbf 100644 (file)
@@ -14,7 +14,7 @@ function set_global_connection($company=-1)
 {
        global $db, $transaction_level, $path_to_root, $db_connections;
 
-       include ($path_to_root . "/config_db.php");
+       include ($path_to_rrot . "/config_db.php");
        if ($company == -1) 
                $company = $_SESSION["wa_current_user"]->company;
 
@@ -264,4 +264,12 @@ function db_set_encoding($ui_encoding=null)
                mysql_set_charset($mysql_enc);
 }
 
-?>
\ No newline at end of file
+function db_get_charset($db)
+{
+       return mysql_client_encoding();
+}
+
+function db_set_charset($db, $charset)
+{
+       return mysql_set_charset($charset, $db);
+}
index e8f5395a3c579c7b9d929fc7847236fac6babcdc..c5c1d69b761ff3814ee1eeb6a032503bc8c597b8 100644 (file)
@@ -264,4 +264,14 @@ function db_set_encoding($ui_encoding=null)
                mysqli_set_charset($db, $mysql_enc);
 }
 
-?>
\ No newline at end of file
+function db_get_charset($db)
+{
+       return mysqli_character_set_name($db);
+}
+
+function db_set_charset($db, $charset)
+{
+       global $db;
+
+       return mysqli_set_charset($db, $charset);
+}