]> git.joonet.de Git - adminer.git/commitdiff
Respect function results in where()
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 8 Aug 2008 12:26:56 +0000 (12:26 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 8 Aug 2008 12:26:56 +0000 (12:26 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@441 7c3ca157-0c34-0410-bff1-cbf682f78f5c

functions.inc.php

index 78ea807d997e3874c49d14aa38ce5b44272befd9..b5bd9b1eeb9987a0f97382e4ac48ba53f4a6b384 100644 (file)
@@ -141,10 +141,12 @@ function where($where) {
        global $mysql;
        $return = array();
        foreach ((array) $where["where"] as $key => $val) {
-               $return[] = idf_escape(bracket_escape($key, "back")) . " = BINARY '" . $mysql->escape_string($val) . "'"; //! enum and set
+               $key = bracket_escape($key, "back");
+               $return[] = (preg_match('~^[A-Z0-9_]+\\(`(?:[^`]+|``)+`\\)$~', $key) ? $key : idf_escape($key)) . " = BINARY '" . $mysql->escape_string($val) . "'"; //! enum and set, columns looking like functions
        }
        foreach ((array) $where["null"] as $key) {
-               $return[] = idf_escape(bracket_escape($key, "back")) . " IS NULL";
+               $key = bracket_escape($key, "back");
+               $return[] = (preg_match('~^[A-Z0-9_]+\\(`(?:[^`]+|``)+`\\)$~', $key) ? $key : idf_escape($key)) . " IS NULL";
        }
        return $return;
 }