From 521c0d32da9024be2106607d6f7da558afef3575 Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Tue, 13 Mar 2012 19:37:24 -0400 Subject: [PATCH] start of like method implementation --- sys/db/db_pdo.php | 2 -- sys/db/query_builder.php | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/sys/db/db_pdo.php b/sys/db/db_pdo.php index 00ffeb6..9da0819 100644 --- a/sys/db/db_pdo.php +++ b/sys/db/db_pdo.php @@ -248,8 +248,6 @@ abstract class DB_PDO extends PDO { * Abstract parent for database manipulation subclasses */ abstract class DB_SQL { - - /** * Get database-specific sql to create a new table diff --git a/sys/db/query_builder.php b/sys/db/query_builder.php index d0dac3d..f5d8290 100644 --- a/sys/db/query_builder.php +++ b/sys/db/query_builder.php @@ -165,7 +165,39 @@ class Query_Builder { */ public function like($field, $val, $pos='both') { - // @todo implement like method + // @todo Add to where string in the appropriate location + + $field = $this->db->quote_ident($field); + + $this->like_array[$field] = array( + 'value' => $val, + 'pos' => $post + ); + + $likes = array(); + + foreach($this->like_array as $field => $array) + { + $l = $field. ' LIKE '; + + if ($pos == 'before') + { + $l .= '%?'; + } + elseif ($pos == 'after') + { + $l .= '?%'; + } + else + { + $l .= '%?%'; + } + + $likes[] = $l; + } + + $this->like_string = implode(' AND ', $likes); + return $this; }