]> git.nbdom.net Git - nb.git/commitdiff
share/db/update.sh
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 8 Dec 2022 18:25:27 +0000 (18:25 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 8 Dec 2022 18:25:27 +0000 (18:25 +0000)
lib/php/db/table.php
lib/php/nb.php
share/db/nb.db

index 014f66c4416848532b3a43e94824fee0ff16c48f..e2d5c9a3070e8ba835d8f2cf6a0fa23722c989b0 100644 (file)
@@ -1882,31 +1882,36 @@ Class Table extends nb {
 
                $sql =  ''
                        .'UPDATE ' . $this->sql_name()
-                       .' SET '   . join(',',$this->ar_map('"$a=:$a"',$fields))
-                       .' WHERE ' . join(' AND ',$this->ar_map('"$a=:key_$a"',$keys))
+                       .' SET '   . join(',',
+                       array_map(function($a) { return("$a=:_val_$a"); },$fields)
+                       )
+                       .' WHERE ' . join(' AND ',
+                       array_map(function($a) { return("$a=:_key_$a"); },$keys)
+                       )
                ;
                $info = [ 'sql' => $sql ] + $info;
-               # NB 28.03.22 $this->file_write('/tmp/nb',print_r($info,true));
+               #bye($sql);
+               #$this->file_write('/tmp/nb',print_r($info,true));
 
                if ($bindParam and !($query = $this->db()->conn->prepare($sql))) {
                        $this->err('PDO::errorInfo(): ' .join(' ', $this->db()->conn->errorInfo()) .NB_EOL);
                        return false;
                }
 
+               #debug(">>> ".$sql);
                foreach ($fields as $name) {
                        #debug("$name: ".$post[$name]);
                        $row = [ $name => $post[$name] ];
                        $this->db()->table_row_encrypt($this,$row);
-                       if ($bindParam) $field->bindParam($query,$row[$name],":$name");
-# NB 21.08.18                  $sql = str_replace(":$name",$this->field($name)->quote($row[$name]),$sql);
-                       $sql = str_replace("$name=:$name",$this->field($name)->sql_name().'='.$this->field($name)->quote($row[$name]),$sql);
+                       if ($bindParam) $field->bindParam($query,$row[$name],":_val_$name");
+                       $sql = str_replace("$name=:_val_$name",$this->field($name)->sql_name().'='.$this->field($name)->quote($row[$name]),$sql);
                }
 
                foreach ($info['keys'] as $name => $value) {
                        #debug("$name: ".$post[$name]);
-                       if ($bindParam) $field->bindParam($query,$value,":key_$name");
+                       if ($bindParam) $field->bindParam($query,$value,":_key_$name");
 # NB 21.08.18                  $sql = str_replace(":key_$name",$this->field($name)->quote($value),$sql);
-                       $sql = str_replace("$name=:key_$name",$this->field($name)->sql_name().'='.$this->field($name)->quote($value),$sql);
+                       $sql = str_replace("$name=:_key_$name",$this->field($name)->sql_name().'='.$this->field($name)->quote($value),$sql);
                }
                #bye(">>> ".$sql);
 
index 680383d460defc32a9fbac68d33af44a29bfbc20..3017bab8e6d35d28efc67aa8e4f433f9cdbd5c9b 100644 (file)
@@ -195,14 +195,17 @@ class Nb {
         */
        public static function ar_map($return,$array,$as_hash=false) {
        $map = $array;
-       /*
        # NB 30.11.22: Does not work get error message mb_strlen does not exists 
+       #bye($return);
+       #bye(PHP_VERSION_ID);
        $map = array_map(function($a) use($return) {
                        if (PHP_VERSION_ID>=70000) eval('$return='.$return.';');
                        return($return);
                },$array);
+       /*
                */
                #$map = array_map(function($a) use($return) { $return = str_replace('$a',$a,$return); return($return); },$array);
+               #
 
        if ($as_hash) {
 
index 7c5d4e02c83d767b5604429ab4b5401d83c67d5a..2ad4a7ca7e527ac051e2fc74bf145d0752158ac0 100644 (file)
Binary files a/share/db/nb.db and b/share/db/nb.db differ