0
* Function: build_update_values
0
* Creates an update data part.
0
- public static function build_update_values($data) {
0
- foreach ($data as $field => $val)
0
- array_push($set, "$field = $val");
0
+ public static function build_update_values($data, &$params = array()) {
0
+ $set = self::build_conditions($data, $params);
0
return implode(", ", $set);
0
public static function build_update($table, $conds, $data, &$params = array()) {
0
- SET ".self::build_update_values($data
)."
0
+ SET ".self::build_update_values($data
, $params)."
0
".($conds ? "WHERE ".self::build_where($conds, $table, $params) : "")."
0
return implode(", ", $order);
0
- public static function build_conditions($conds, &$params, $tables
) {
0
+ public static function build_conditions($conds, &$params, $tables
= null) {
0
foreach ($conds as $key => $val) {
0
if (is_numeric($key)) # Full expression
0
else { # Key => Val expression
0
- if (substr($key, -4) == " not") { # Negation
0
- $key = substr($key, 0, -4);
0
- $cond = $key." NOT IN ".self::build_in($val);
0
- elseif ($val === null)
0
- $cond = $key." IS NOT NULL";
0
- $cond = $key." != :".$key;
0
+ if (is_string($val) and $val[0] == ":")
0
+ $cond = $key." = ".$val;
0
+ if (substr($key, -4) == " not") { # Negation
0
+ $key = substr($key, 0, -4);
0
+ $cond = $key." NOT IN ".self::build_in($val);
0
+ elseif ($val === null)
0
+ $cond = $key." IS NOT NULL";
0
+ $cond = $key." != :".$key;
0
+ $params[":".$key] = $val;
0
+ } elseif (substr($key, -5) == " like") { # LIKE
0
+ $key = substr($key, 0, -5);
0
+ $cond = $key." LIKE :".$key;
0
$params[":".$key] = $val;
0
- } elseif (substr($key, -5) == " like") { # LIKE
0
- $key = substr($key, 0, -5);
0
- $cond = $key." LIKE :".$key;
0
- $params[":".$key] = $val;
0
- } elseif (substr($key, -9) == " not like") { # NOT LIKE
0
- $key = substr($key, 0, -9);
0
- $cond = $key." NOT LIKE :".$key;
0
- $params[":".$key] = $val;
0
- $cond = $key." IN ".self::build_in($val);
0
- elseif ($val === null)
0
- $cond = $key." IS NULL";
0
- $cond = $key." = :".$key;
0
+ } elseif (substr($key, -9) == " not like") { # NOT LIKE
0
+ $key = substr($key, 0, -9);
0
+ $cond = $key." NOT LIKE :".$key;
0
$params[":".$key] = $val;
0
+ $cond = $key." IN ".self::build_in($val);
0
+ elseif ($val === null)
0
+ $cond = $key." IS NULL";
0
+ $cond = $key." = :".$key;
0
+ $params[":".$key] = $val;
0
- self::tablefy($cond, $tables);
0
+ self::tablefy($cond, $tables);