]> git.nbdom.net Git - nb.git/commitdiff
lib/php/db/table.php
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Fri, 3 Aug 2018 09:55:48 +0000 (10:55 +0100)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Fri, 3 Aug 2018 09:55:48 +0000 (10:55 +0100)
lib/php/db.php
lib/php/db/table.php

index 2f664eb59dec159de508674a4643395652b99cfb..cf1208720f5933e55e171e4199cf891cb8470f1f 100644 (file)
@@ -1387,6 +1387,12 @@ class Db extends nb {
                return $str;
        }
 
+       public function lower_if_case_sensitive($v,$db_fct = true) {
+               if (!$this->conf_type('like_nocase')) return $v;
+               if (!$db_fct) return strtolower($v);
+               return "LOWER($v)";
+       }
+
        public function like_nocase() {
                if ($v = $this->conf_type('like_nocase')) return $v;
                return 'LIKE';
index 3330e58e1497ac881ea9a2ebb168511d0c1c3a81..8a60887a78d5542cd1266ecc3a49cd0253cf61a0 100644 (file)
@@ -814,6 +814,7 @@ Class Table extends nb {
                                $v = substr($v,1);
                                $v = $this->db()->quote($v);
                                $equal = ' '.($not ? $regexp_not : '').$regexp.' ';
+                               $v = $this->db()->lower_if_case_sensitive($v,false);
 
                        } elseif ($field->string()) {
 
@@ -825,12 +826,13 @@ Class Table extends nb {
                                $v = $this->db()->quote($v);
                                if (preg_match('/[_%]/',$v)) {
                                        $match = 'like';
-# NB 07.01.18           $equal = ' '.($not ? 'NOT ' : '').'LIKE ';
                                        $equal = ' '.($not ? 'NOT ' : '').$this->db()->like_nocase().' ';
                                } else {
                                        $equal = ($not ? '<> ' : $equal);
                                }
 
+                               $v = $this->db()->lower_if_case_sensitive($v,false);
+
                        // Others
                        } else {
 
@@ -849,6 +851,7 @@ Class Table extends nb {
                        }
 
                        $name = $field->sql_name(true);
+                       $name = $this->db()->lower_if_case_sensitive($name,true);
 
                        if ($field->extras) {
                                $k = $this->extras[$k]->sql_name();