diff --git a/www/admin/class_test.db.query-placeholder.php b/www/admin/class_test.db.query-placeholder.php index 6da93482..da052c4e 100644 --- a/www/admin/class_test.db.query-placeholder.php +++ b/www/admin/class_test.db.query-placeholder.php @@ -115,6 +115,8 @@ echo "INSERT ALL COLUMN TYPES: " . "ERROR: " . $db->dbGetLastError(true) . "
"; echo "
"; +// test connectors: = , <> () for query detection + // convert placeholder tests // ? -> $n // :name -> $n diff --git a/www/lib/CoreLibs/Combined/DateTime.php b/www/lib/CoreLibs/Combined/DateTime.php index 50532a57..b4c5d654 100644 --- a/www/lib/CoreLibs/Combined/DateTime.php +++ b/www/lib/CoreLibs/Combined/DateTime.php @@ -385,7 +385,7 @@ class DateTime } else { $str = implode(', ', array_slice($formatted, 0, -1)); if (!empty($formatted[count($formatted) - 1])) { - $str .= ' and ' . $formatted[count($formatted) - 1]; + $str .= ' and ' . (string)array_pop($formatted); } return $negative . $str; } diff --git a/www/lib/CoreLibs/DB/IO.php b/www/lib/CoreLibs/DB/IO.php index aeccd679..35c81a57 100644 --- a/www/lib/CoreLibs/DB/IO.php +++ b/www/lib/CoreLibs/DB/IO.php @@ -1318,14 +1318,14 @@ class IO // regex for params: only stand alone $number allowed // exclude all '' enclosed strings, ignore all numbers [note must start with digit] // can have space/tab/new line - // must have = , ( [equal, comma, opening round bracket] + // must have <> = , ( [not equal, equal, comma, opening round bracket] // can have space/tab/new line // $ number with 1-9 for first and 0-9 for further digits // /s for matching new line in . list // [disabled, we don't used ^ or $] /m for multi line match // Matches in 1:, must be array_filtered to remove empty, count with array_unique preg_match_all( - '/(?:\'.*?\')?\s*(?:\?\?|[(=,])\s*(?:\d+|(?:\'.*?\')|(\$[1-9]{1}(?:[0-9]{1,})?))/s', + '/(?:\'.*?\')?\s*(?:\?\?|<>|[(=,])\s*(?:\d+|(?:\'.*?\')|(\$[1-9]{1}(?:[0-9]{1,})?))/s', $query, $match );