$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);
*/
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) {