]> git.nbdom.net Git - nb.git/commitdiff
yaml
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 3 Nov 2015 00:41:40 +0000 (01:41 +0100)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 3 Nov 2015 00:41:40 +0000 (01:41 +0100)
lib/php/db.php
lib/php/db/table.php

index 4d36eb96a98254f457dca919119bdeb7966f39e0..5d61913d39d8d4a2309453969700f9f035655a00 100644 (file)
@@ -163,6 +163,7 @@ class db extends nb {
   }
 
   /*
+  */
   function query2a($sql) {
     $r = $this->conn->query($sql,PDO::FETCH_COLUMN);
     return $r ? $r->fetch() : $r;
@@ -181,7 +182,6 @@ class db extends nb {
     return $this->conn->query($sql,PDO::FETCH_ASSOC);
   }
 
-  */
   function quote($v) {
     return $this->conn->quote($v);
   }
index 686f6a0b4cdf5e747d595f5c69c0937efdacb351..3be38eab9ee5fcd91cacea391f55c0cabaf952ae 100644 (file)
@@ -613,15 +613,18 @@ FROM pg_catalog.pg_attribute a WHERE a.attrelid = (SELECT c.oid FROM pg_catalog.
     if ($this->db->type =='mysql') {
       $query = $this->db->conn->query('SELECT FOUND_ROWS()');
     } else {
-      $query = $this->db->conn->query("SELECT count(*)".preg_replace('/^SELECT .*?FROM/',' FROM',$sql));
-      #$query = $this->db->conn->query("SELECT count(*) FROM ($sql) count");
+      $sql_count = preg_replace('/^SELECT .*?FROM/s','SELECT count(*) FROM',$sql);
+      $sql_count = preg_replace('/ (ORDER|LIMIT) .*?$/s','',$sql_count);
+      $query = $this->db->conn->query($sql_count);
     }
+
     if (!$query) {
       $err = $this->db->conn->errorInfo();
       $err[] = $sql;
       err(join(' | ',$err));
       return $err[0];
     }
+
     $tot = $query->fetch(PDO::FETCH_COLUMN);
     $opt['tot'] = $tot;
     #if (!$tot) return;