]> git.nbdom.net Git - nb.git/commitdiff
table as sql
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 22 Jun 2016 15:51:26 +0000 (17:51 +0200)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 22 Jun 2016 15:51:26 +0000 (17:51 +0200)
etc/dbs/rent.php
lib/php/db.php
lib/php/db/table.php

index e95fff8140e57b8d17cf2ba956cf7c4855fe6677..9d2c81e3dfb277a116aac97dda3e88e7984e1895 100644 (file)
@@ -18,6 +18,10 @@ $CONF['_rent'] = array(
       'row_parse_post' => 'tenant_doc',
     ),
 
+    'test' => array(
+      'sql' => 'SELECT 1',
+    ),
+
     'rent' => array(
       'orderby' => 'start desc, end desc',
       #'replace' => [ 'idtenant' => 'tenant.name', 'idplace' => 'addr.addr' ],
@@ -58,7 +62,7 @@ $CONF['_rent'] = array(
 $CONF['rent'] = array (
   'order' => 5,
   'pdo' => 'sqlite:/opt/rent/rent.db',
-  #'_import' => '_nb',
+  '_import' => '_rent',
 );
 
 return 1;
index b0f7ab4cb98998dfb7d105aef916c1442f90da87..05596e46c79fdb9e6a8d6810eb39d1f89d27fdfb 100644 (file)
@@ -527,9 +527,6 @@ class Db extends nb {
     }
 
     if (!$dbs) return false;
-    #if (! ($dbs = $Db->conf_dbs($conf)) ) return false;
-    #bye($dbs['nb']);
-    #die (nb::p('db'));
 
     # Param - Default base on order hight num value
     if (!$Db->p('db')) {
@@ -545,7 +542,6 @@ class Db extends nb {
       'dbs'=>array_keys($dbs),
       'conf'=>$dbs,
     ));
-    #bye($Db->p('db'));
 
     $Db->__construct($db);
 
index 862de71e6ea6189214d2bde6ba1a7baaf4594c63..086ecd217db443357f9edb76d80c73f572260659 100644 (file)
@@ -84,11 +84,13 @@ Class Table extends nb {
 
     // Name, could be a select
     if (DB_TABLE_QUERY_NAME and stripos($this->name,'SELECT ')===0) {
-      #$temp = '_'.substr(md5($this->name),0,6);
-      $temp = DB_TABLE_QUERY_NAME;
-      #bye("CREATE TEMPORARY VIEW $temp AS $this->name");
-      $this->db()->conn->query("CREATE TEMPORARY TABLE $temp AS $this->name");
-      $this->name = $temp;
+      $this->db()->conn->query("CREATE TEMPORARY TABLE ".DB_TABLE_QUERY_NAME." AS $this->name");
+      $this->name = DB_TABLE_QUERY_NAME;
+
+    // Virtual Table
+    } elseif (DB_TABLE_QUERY_NAME and !empty($this->sql)) {
+      $this->db()->conn->query("CREATE TEMPORARY TABLE ".DB_TABLE_QUERY_NAME." AS $this->sql");
+      $this->name = DB_TABLE_QUERY_NAME;
 
     } elseif (preg_match('/\b(\.import|LOAD DATA|COPY|INSERT|REPLACE|DELETE|TRUNCATE|CREATE|DROP|ALERT)\b/',$this->name)) {
       bye("Query not Allowed !");