function coder_upgrade_count_sql_conditions in Coder 7
Same name and namespace in other branches
- 7.2 coder_upgrade/conversions/db.inc \coder_upgrade_count_sql_conditions()
Returns count of sql conditions that need a replacement value.
Parameters
string $string: String of sql conditions.
Return value
integer Count of conditions.
2 calls to coder_upgrade_count_sql_conditions()
- coder_upgrade_parse_delete_query_string in coder_upgrade/
conversions/ db.inc - Replaces D6 database API call with D7 equivalent.
- coder_upgrade_parse_update_query_string in coder_upgrade/
conversions/ db.inc - Replaces D6 database API call with D7 equivalent.
File
- coder_upgrade/
conversions/ db.inc, line 646 - Provides conversion routines applied to database API function calls and hooks.
Code
function coder_upgrade_count_sql_conditions($string) {
// Check for inner conditionals or function calls. For now, we'll just use
// where() instead of conditionals, given the complexity of inner conditionals.
if (preg_match("/\\((.*)\\)/", $string, $matches)) {
return 1;
// return "\t\t->where('$string', " . var_dump($values) . ")";
}
$count = 0;
// TODO Handle other conjunctions besides AND.
$conditions = preg_split('/AND|OR|XOR|&&|\\|\\|/', $string);
if (!is_array($conditions)) {
$conditions = array(
$string,
);
}
foreach ($conditions as $condition) {
// TODO Handle other functions like IN, BETWEEN
list($condition, $operator, $value) = preg_split('/([!=><]+|LIKE|IN|BETWEEN)/', $condition, -1, PREG_SPLIT_DELIM_CAPTURE);
if (preg_match('/%[sbdf]/', trim($value))) {
$count++;
}
}
return $count;
}