From 85ea13107dde835b281a021a003b9b338032850d Mon Sep 17 00:00:00 2001 From: Anne Limoges Date: Sun, 11 May 2014 17:59:04 +0200 Subject: [PATCH] Use mysqli for LOAD DATA LOCAL INFILE. --- modules/fusionax.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/fusionax.php b/modules/fusionax.php index 892b393..fc43d3d 100644 --- a/modules/fusionax.php +++ b/modules/fusionax.php @@ -89,6 +89,7 @@ class FusionAxModule extends PLModule /** Import de l'annuaire de l'AX depuis l'export situé dans le home de jacou */ function handler_import($page, $action = 'index', $file = '') { + global $globals; if ($action == 'index') { $page->changeTpl('fusionax/import.tpl'); return; @@ -143,6 +144,11 @@ class FusionAxModule extends PLModule if ($file != '') { // récupère le contenu du fichier sql $queries = explode(';', file_get_contents($modulepath . $filesSQL[$file])); + $db = mysqli_init(); + $db->options(MYSQLI_OPT_LOCAL_INFILE, true); + $db->real_connect($globals->dbhost, $globals->dbuser, $globals->dbpwd, $globals->dbdb); + $db->autocommit(true); + $db->set_charset($globals->dbcharset); foreach ($queries as $q) { if (trim($q)) { // coupe le fichier en requêtes individuelles @@ -153,9 +159,13 @@ class FusionAxModule extends PLModule $report[] = addslashes($l); } // exécute la requête - XDB::execute(str_replace('{?}', $spoolpath, $q)); + $res = $db->query(str_replace('{?}', $spoolpath, $q)); + if ($res === false) { + throw new XDBException($q, $db->error); + } } } + $db->close(); // trouve le prochain fichier à exécuter $nextfile = $file + 1; } else { -- 2.1.4