Fixing database::parse_conditions to accept likes and simple conditions

skala
Julio Montoya 14 years ago
parent f596eec692
commit b43ee64783
  1. 12
      main/inc/lib/database.lib.php
  2. 15
      main/inc/lib/database.mysqli.lib.php

@ -1203,14 +1203,18 @@ class Database {
$clean_values = $value_array;
}
if (!empty($condition) && $clean_values != '') {
if (!empty($condition) && $clean_values != '') {
$condition = str_replace('%',"'@percentage@'", $condition); //replace "%"
$condition = str_replace("'?'","%s", $condition);
$condition = str_replace("?","%s", $condition);
//Treat conditons as string
$condition = str_replace("@%s@","@-@", $condition);
$condition = str_replace("%s","'%s'", $condition);
$condition = vsprintf($condition, $clean_values);
$condition = str_replace('@percentage@','%', $condition); //replace "%"
$condition = str_replace("@-@","@%s@", $condition);
//Treat conditons as string
$condition = vsprintf($condition, $clean_values);
$condition = str_replace('@percentage@','%', $condition); //replace "%"
$where_return .= $condition;
}
}

@ -1138,16 +1138,21 @@ class Database {
$value_array = Database::escape_string($value_array);
$clean_values = $value_array;
}
if (!empty($condition) && $clean_values != '') {
if (!empty($condition) && $clean_values != '') {
$condition = str_replace('%',"'@percentage@'", $condition); //replace "%"
$condition = str_replace("'?'","%s", $condition);
$condition = str_replace("?","%s", $condition);
//Treat conditons as string
$condition = str_replace("@%s@","@-@", $condition);
$condition = str_replace("%s","'%s'", $condition);
$condition = vsprintf($condition, $clean_values);
$condition = str_replace('@percentage@','%', $condition); //replace "%"
$condition = str_replace("@-@","@%s@", $condition);
//Treat conditons as string
$condition = vsprintf($condition, $clean_values);
$condition = str_replace('@percentage@','%', $condition); //replace "%"
$where_return .= $condition;
} }
}
}
if (!empty($where_return)) {
$return_value = " WHERE $where_return" ;
}

Loading…
Cancel
Save