From 3f7236c706cbf20c950430246a92da4de45b9769 Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Tue, 13 Mar 2012 20:04:18 -0400 Subject: [PATCH] Started query queue with like method --- sys/db/query_builder.php | 47 ++++++++++++++++---------------- tests/databases/firebird-qb.php | 2 +- tests/databases/sqlite-qb.php | 2 +- tests/test_dbs/FB_TEST_DB.FDB | Bin 802816 -> 802816 bytes 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/sys/db/query_builder.php b/sys/db/query_builder.php index f5d8290..2eac8d4 100644 --- a/sys/db/query_builder.php +++ b/sys/db/query_builder.php @@ -24,7 +24,6 @@ class Query_Builder { private $select_string, $from_string, $where_string, - $like_string, $insert_string, $update_string, $set_string, @@ -45,6 +44,9 @@ class Query_Builder { // Alias to $this->db->sql private $sql; + + // Query component order mapping + private $query_map; /** * Constructor @@ -165,8 +167,6 @@ class Query_Builder { */ public function like($field, $val, $pos='both') { - // @todo Add to where string in the appropriate location - $field = $this->db->quote_ident($field); $this->like_array[$field] = array( @@ -174,29 +174,28 @@ class Query_Builder { 'pos' => $post ); - $likes = array(); - - foreach($this->like_array as $field => $array) + // Add the like string into the order map + $l = $field. ' LIKE '; + + if ($pos == 'before') { - $l = $field. ' LIKE '; - - if ($pos == 'before') - { - $l .= '%?'; - } - elseif ($pos == 'after') - { - $l .= '?%'; - } - else - { - $l .= '%?%'; - } - - $likes[] = $l; + $l .= '%?'; + } + elseif ($pos == 'after') + { + $l .= '?%'; + } + else + { + $l .= '%?%'; } - $this->like_string = implode(' AND ', $likes); + $this->query_map[] = array( + 'type' => 'like', + 'conjunction' => (empty($this->query_map)) ? 'WHERE ' : ' AND ', + 'string' => $l, + 'value' => $val + ); return $this; } @@ -712,7 +711,7 @@ class Query_Builder { break; } - echo $sql.'
'; + //echo $sql.'
'; return $sql; } diff --git a/tests/databases/firebird-qb.php b/tests/databases/firebird-qb.php index 8b6474b..3c26165 100644 --- a/tests/databases/firebird-qb.php +++ b/tests/databases/firebird-qb.php @@ -32,7 +32,7 @@ class FirebirdQBTest extends UnitTestCase { $params->pass = 'masterkey'; $this->qb = new Query_Builder($params); - echo '
Firebird Queries
'; + //echo '
Firebird Queries
'; } function TestGet() diff --git a/tests/databases/sqlite-qb.php b/tests/databases/sqlite-qb.php index 7f8fab5..e1a92a5 100644 --- a/tests/databases/sqlite-qb.php +++ b/tests/databases/sqlite-qb.php @@ -28,7 +28,7 @@ $params->host = 'localhost'; $this->qb = new Query_Builder($params); - echo '
SQLite Queries
'; + //echo '
SQLite Queries
'; } function TestGet() diff --git a/tests/test_dbs/FB_TEST_DB.FDB b/tests/test_dbs/FB_TEST_DB.FDB index fbb39cba56151f113a08fbf00adad472f8844b60..c324e6249505f5096af4bf70db1b5965b962b051 100755 GIT binary patch delta 591 zcmY+Aze^lJ6vyAJd%Cyx^qzYd8x6a6#*5w=Z-b&%N<=F;TymUE1Pg0VY%H@_Or?bg zJ}~HCU;>G7S80r0s`P?Ynv}^Opg6NX4DRq|_{_}rGmi~JKMei4fVtX90seoK3%e51 zYv2GhRRI{{(=9+_=2v+oA73Ca)YynXs5x*hyp3=9J(46O8IrmrnUXS+x+V2UvLt2O zWSb<`IvLkKF^?9=7V}?&W=_`Zb}eWAEe{#7ThFGdrpQCp8jUuGtX>GSE;Ovs!(gEB zAzOl3RhS)vKUN8@_4aUQ+r{&qe%v+nV#HR7YS}tJvewq8<;479z%yVWO2aP3%zZ9` K+_|jcV&M^95Mbc| delta 588 zcmZ9JF-s#+5P)Yk8{_ScIz|rdZWA?$CebV?hkD(Cl_-K(U6BKet4y%55>}B{NI-2I zQM42b3q8Sf9%pskS>F$^6KpL4zPFoI&V9^#@7tOEc6MJ7_(9;$BTQB5eeia%8zkCf z)_fYEqyxah<9`54pa15IJy8LJrAIXc)N?+4ovHrp*$1*zb&CP{3=iDyX*85BHph1K1L&p~y zfdRcfxw-vCzghR_A|?0ZMDiy?LwGKa8OkCGXUX%=dI9dV$^z5_AZ9~I_{tFGC*f4S zXK7d-3Y5bWxf-V-c^;!89!V>!t*yv<_|6)0XkD=&=C-x9C;P)RA<0qd$6aGBM!hyn zuV4M0|8=)9hdN-0xvg8