]> git.nbdom.net Git - nb.git/commitdiff
sql_exec
authorNicolas Boisselier <nicolas.boisselier@semantico.com>
Tue, 5 Jul 2016 11:01:39 +0000 (12:01 +0100)
committerNicolas Boisselier <nicolas.boisselier@semantico.com>
Tue, 5 Jul 2016 11:01:39 +0000 (12:01 +0100)
etc/dbs/ui.php
lib/php/db.php
lib/php/db/types/mysql.php

index 1a07cbf0cf18212ddbb937d6be01654ff2d5c5f2..8ede2185447c9cbb4b7761aca921f1caeb222e3a 100644 (file)
@@ -4,6 +4,10 @@ $CONF['_ui'] = array(
   'pdo' => 'sqlite:/opt/semantico/product/releases/sem_ui/db/semantico.db',
   'default_table' => 'node',
 
+  'sql_exec' => [
+    'SET SESSION sql_mode=PIPES_AS_CONCAT',
+  ],
+
   'sql_replace' => function($sql) {
     if (!Db::p('db.type')) return $sql;
     $r = [];
index 99c5ae0142c55001cc1fb977ca8aa4baab2483c9..234202579e62bd095a29f0f3ad694be6165ab026 100644 (file)
@@ -170,11 +170,8 @@ class Db extends nb {
     if (empty($this->conn)) return false;
 
     # Type queries
-    if ($sql = $this->type('exec')) {
-      if (is_scalar($sql)) $sql = array($sql);
-      foreach ($sql as $s) {
-        if (!empty($s)) $this->conn->exec($s);
-      }
+    foreach ($this->sql_exec() as $s) {
+      $this->conn->exec($s);
     }
 
     # Create functions
@@ -642,10 +639,8 @@ class Db extends nb {
     $type = self::p('type','');
     $name = self::p('name','');
 
-    if ($sql = $this->type('exec')) {
-      foreach ((is_array($sql) ? $sql : array($sql)) as $sql) {
-        if ($sql) echo rtrim($sql,';').";\n";
-      }
+    foreach ($this->sql_exec() as $s) {
+      echo rtrim($s,';').";\n";
     }
 
     foreach ($tables as $t) {
@@ -749,6 +744,25 @@ class Db extends nb {
     return $fields;
   }
 
+  public function sql_exec() {
+    $return = [];
+
+    if ($sql = $this->type('exec')) {
+      if (is_scalar($sql)) $sql = array($sql);
+      foreach ($sql as $s) {
+        if (!empty($s)) $return[] = $s;
+      }
+    }
+
+    if (!empty($this->sql_exec) and ($sql = $this->sql_exec)) {
+      if (is_scalar($sql)) $sql = array($sql);
+      foreach ($sql as $s) {
+        if (!empty($s)) $return[] = $s;
+      }
+    }
+
+    return $return;
+  }
 } # < Class
 
 ?>
index bb464a5ca07d701c27e4898e746f79c7a6e0adf4..a1d4658797364a639e0a3c055210e996722d78fc 100644 (file)
@@ -13,7 +13,6 @@ $DB_TYPES['mysql'] = array (
     'SET NAMES '.str_replace('utf-8','utf8',strtolower(Db::$encoding)),
   ],
   (Db::p('db.type') ? [
-    'SET SESSION sql_mode=PIPES_AS_CONCAT',
     "/*!40103 SET TIME_ZONE='+00:00' */",
     '/*!40014 SET @@UNIQUE_CHECKS=0 */',
     '/*!40014 SET @@FOREIGN_KEY_CHECKS=0 */',