Skip to content

Commit 016accc

Browse files
committed
changes
1 parent 95a1e8c commit 016accc

File tree

1 file changed

+37
-15
lines changed

1 file changed

+37
-15
lines changed

Where.php

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,51 @@ public function add($field, $value, $operator = "=", $value_type = "string")
2020
strpos($field, "=") !== FALSE
2121
|| strpos($field, ">") !== FALSE
2222
|| strpos($field, "<") !== FALSE
23-
|| strpos($field, "NOT") !== FALSE
23+
|| strpos(strtoupper($field, "NOT")) !== FALSE
24+
|| strpos(strtoupper($field, "IN")) !== FALSE
2425
)
2526
{
2627
$operator = "";
2728
}
2829

29-
switch($value_type)
30+
switch(gettype($value))
3031
{
3132
case "string":
32-
$value = "'" . $value . "'";
33-
break;
34-
35-
case "date":
36-
case "datetime":
37-
$value = date("Y-m-d H:i:s", strtotime($value));
38-
$value = "'" . $value . "'";
39-
break;
40-
41-
case "bool":
33+
switch($value_type)
34+
{
35+
case "string":
36+
$value = "'" . $value . "'";
37+
break;
38+
39+
case "date":
40+
case "datetime":
41+
$value = date("Y-m-d H:i:s", strtotime($value));
42+
$value = "'" . $value . "'";
43+
break;
44+
45+
case "bool":
46+
case "boolean":
47+
$value = (int) $value;
48+
break;
49+
}
50+
break;
51+
4252
case "boolean":
4353
$value = (int) $value;
44-
$value = "'" . $value . "'";
45-
break;
54+
break;
55+
56+
case "array":
57+
$value = "(" . implode(",", $value) . ")";
58+
$operator = "IN";
59+
break;
60+
61+
case "NULL":
62+
$value = "IS NULL";
63+
$operator = "";
64+
break;
65+
66+
default:
67+
throw new Exception("Un-Supported value type");
4668
}
4769

4870
$this->fields[] = array(
@@ -107,7 +129,7 @@ private function _listToStr($data)
107129

108130
foreach($data as $k => $v)
109131
{
110-
$list[] = $k . $v ;
132+
$list[] = $k . " " . $v ;
111133
}
112134

113135
return $list;

0 commit comments

Comments
 (0)