From a873ace000a6192569f79dd9010d12001d87c3fe Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Thu, 8 Dec 2022 18:25:27 +0000 Subject: [PATCH] share/db/update.sh --- lib/php/db/table.php | 21 +++++++++++++-------- lib/php/nb.php | 5 ++++- share/db/nb.db | Bin 671744 -> 671744 bytes 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/php/db/table.php b/lib/php/db/table.php index 014f66c4..e2d5c9a3 100644 --- a/lib/php/db/table.php +++ b/lib/php/db/table.php @@ -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); diff --git a/lib/php/nb.php b/lib/php/nb.php index 680383d4..3017bab8 100644 --- a/lib/php/nb.php +++ b/lib/php/nb.php @@ -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) { diff --git a/share/db/nb.db b/share/db/nb.db index 7c5d4e02c83d767b5604429ab4b5401d83c67d5a..2ad4a7ca7e527ac051e2fc74bf145d0752158ac0 100644 GIT binary patch delta 133 zcmZo@&}?YXoFL7}J5k1&k#}RlGJVFf$?OISjAfez1^jr-O$AsKg+tRab5iw^Gg6bY z6U#wJ!A3zpCACaHuQVq|L02~?Gq1!pFJCvcq6EkTDQ;eC)4tY*5r~<9m>Gy!fS47C T*?^cGh&h0mbNgBwu3%;W(xxks delta 107 zcmZo@&}?YXoFL7}Gf~Ewk!NGVGJVDgli3Xv7$