Use a regex to match queries that need Result objects, because it's more than just...
authorRobert Sesek <rsesek@bluestatic.org>
Wed, 9 Jul 2008 15:29:20 +0000 (11:29 -0400)
committerRobert Sesek <rsesek@bluestatic.org>
Wed, 9 Jul 2008 15:29:20 +0000 (11:29 -0400)
* Db.php:
(BSDb::query): SELECT, DESCRIBE, and EXPLAIN queries all need a Result object

CHANGES
Db.php

diff --git a/CHANGES b/CHANGES
index c16ddd33e793f11b61507da20889f2baaec9ecf3..81fa2e26867d0cf8c5a895cb64cb6211168e5427 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+3.1.2
+===================
+- Fixed: BSDb::query() would not generate a Result object for explain, show, and describe queries
+
 3.1.1
 ===================
 - Fixed: BSMail::send() would fail if sending a HTML/multipart email because it would call BSFunctions::Rand()
diff --git a/Db.php b/Db.php
index 5923e0e56d0b3fd6bbf4a8d3e71d4d0eda0c8631..27d1fb25a9d3ff8c59c3317cbf867f9b384a4571 100644 (file)
--- a/Db.php
+++ b/Db.php
@@ -164,7 +164,7 @@ abstract class BSDb
                        }
                }
                
-               if (strtoupper(substr(trim($string), 0, 6)) == 'SELECT')
+               if (preg_match('/^\s*(select|describe|show|explain)/i', $string))
                {
                        $class = get_class($this) . 'Result';
                        return new $class($this->result);