Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用命名占位符将数据追加到MYSQL数据库的PDO更新查询_Php_Sql_Pdo - Fatal编程技术网

Php 使用命名占位符将数据追加到MYSQL数据库的PDO更新查询

Php 使用命名占位符将数据追加到MYSQL数据库的PDO更新查询,php,sql,pdo,Php,Sql,Pdo,我正在构建sql更新查询,以便仅使用命名占位符将字符串值附加到数据库中已经存在的值。请建议对下面的代码进行必要的更改,或者建议如何在concat update语法中使用命名的placedholders $name="Lastname"; $stmt = $conn->prepare("UPDATE users SET name= name + :name WHERE id=:id"); $stmt->bindParam(':name', $name); $stmt->bindP

我正在构建sql更新查询,以便仅使用命名占位符将字符串值附加到数据库中已经存在的值。请建议对下面的代码进行必要的更改,或者建议如何在concat update语法中使用命名的placedholders

$name="Lastname";
$stmt = $conn->prepare("UPDATE users SET name= name + :name WHERE id=:id");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':id', $id);                   
$stmt->execute(); 
预期产出:

Before:表的“name”列值为“Firstname”


代码执行后:“name”列值“FirstnameLastname”

+
不是连接SQL中字符串的正常方式。标准运算符是
|
,函数
concat()
通常可用:

UPDATE users
    SET name = CONCAT(name, :name)
    WHERE id = :id;

可能的副本并没有说明您正在使用哪个DBMS。我选择的dupe是针对MySQL的,但是其他数据库使用不同的语法。谢谢你的回答。它起作用了。若名称值是整数,并且我希望输出类似于1+1 ie,那个该怎么办2@Sashi . . . 如果需要添加,请使用
+
。但是,名为
name
的列的数字数据类型并不常见。