From 913993c963dbb52a278b15ca3b076cea36641a0b Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Fri, 9 Mar 2012 08:26:16 -0500 Subject: [PATCH] Fix tests --- sys/db/db_pdo.php | 5 +---- sys/db/drivers/mysql.php | 5 +---- sys/db/query_builder.php | 11 +++++++++-- tests/databases/firebird.php | 8 ++++++++ tests/databases/sqlite.php | 2 +- tests/test_dbs/FB_TEST_DB.FDB | Bin 802816 -> 802816 bytes 6 files changed, 20 insertions(+), 11 deletions(-) diff --git a/sys/db/db_pdo.php b/sys/db/db_pdo.php index 06ecc29..279c2e1 100644 --- a/sys/db/db_pdo.php +++ b/sys/db/db_pdo.php @@ -162,10 +162,7 @@ abstract class DB_PDO extends PDO { { if (is_array($ident)) { - for($i = 0, $count = count($ident); $i < $count; $i++) - { - $ident[$i] = $this->quote_ident($ident[$i]); - } + return array_map(array($this, 'quote_ident'), $ident); } // Split each identifier by the period diff --git a/sys/db/drivers/mysql.php b/sys/db/drivers/mysql.php index 80f5fe3..3957dd3 100644 --- a/sys/db/drivers/mysql.php +++ b/sys/db/drivers/mysql.php @@ -136,10 +136,7 @@ class MySQL extends DB_PDO { { if (is_array($ident)) { - for($i = 0, $count = count($ident); $i < $count; $i++) - { - $ident[$i] = $this->quote_ident($ident[$i]); - } + return array_map(array($this, 'quote_ident'), $ident); } // Split each identifier by the period diff --git a/sys/db/query_builder.php b/sys/db/query_builder.php index 612b7df..377f4fa 100644 --- a/sys/db/query_builder.php +++ b/sys/db/query_builder.php @@ -79,7 +79,9 @@ class Query_Builder { { $result = $this->db->query($sql); } - elseif ( ! empty($this->select_string)) + + // Set the select string + if ( ! empty($this->select_string)) { // Replace the star with the selected fields $sql = str_replace('*', $this->select_string, $sql); @@ -90,6 +92,8 @@ class Query_Builder { { $sql = $this->sql->limit($sql, $limit, $offset); } + + //echo $sql."
"; return $this->db->query($sql); } @@ -114,6 +118,7 @@ class Query_Builder { if (stripos($field, 'as') !== FALSE) { $fields_array[$key] = preg_split('`as`i', $field); + $fields_array[$key] = array_map('trim', $fields_array[$key]); } } @@ -121,7 +126,7 @@ class Query_Builder { $safe_array = array_map(array($this->db, 'quote_ident'), $fields_array); // Join the strings back together - for($i = 0, $c = count($safe_array); $i < $count; $i++) + for($i = 0, $c = count($safe_array); $i < $c; $i++) { if (is_array($safe_array[$i])) { @@ -130,6 +135,8 @@ class Query_Builder { } $this->select_string = implode(', ', $safe_array); + + //echo $this->select_string."
"; return $this; } diff --git a/tests/databases/firebird.php b/tests/databases/firebird.php index 9c4272f..e96b275 100644 --- a/tests/databases/firebird.php +++ b/tests/databases/firebird.php @@ -154,6 +154,14 @@ class FirebirdTest extends UnitTestCase { $this->assertTrue(is_resource($query)); } + function TestQBSelectGet() + { + $query = $this->qb->select('id, key as k, val')->get('create_test', 2, 1); + + $this->assertTrue(is_resource($query)); + + } + function TestPreparedStatements() { $sql = <<qb->select('id, key as k, val')->get('create_test'); + $query = $this->qb->select('id, key as k, val')->get('create_test', 2, 1); $this->assertIsA($query, 'PDOStatement'); diff --git a/tests/test_dbs/FB_TEST_DB.FDB b/tests/test_dbs/FB_TEST_DB.FDB index f7e36f7a9317dbe2eb2c90346d85c0872db07c28..7dcb545a1e43af859a8cd1e4faee5f7765c23c5a 100755 GIT binary patch delta 9948 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