小编典典

MySQL UPDATE查询期间如何串联两个字符串?

sql

用例:创建了一个记录Spot,Code,Language,Count……后来发现输入的语言是错误的。试图使用UPDATE查询来更改语言。串联字符串仍然显示相同。更新后的语言字符串在串联字符串中未更改。

使用此MySql查询创建的记录

$sql = "INSERT INTO library (spot,code,language,count,litcode) values(?,?,?,?,CONCAT(language,'-',code))";

尝试使用此MySql查询更新语言

Database::connect(); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sql = "UPDATE literatures set spot = ?, code = ?,language = ?, count =?, litcode = CONCAT(language,'-',code) WHERE id = ?";
$q = $pdo->prepare($sql); 
$q->execute(array($spot,$code,$language,$count,$litcode,$id)); 
Database::disconnect();

最终,语言已更新,但未更新连接字符串中的语言。

UPDATE查询中有任何错误吗?


阅读 315

收藏
2021-03-08

共1个答案

小编典典

您正在尝试绑定,$litcode但是已经绑定了CONCAT(language,'-',code)。您?的查询中有5个,但是您试图绑定6个参数。

将您的代码更改为此:

Database::connect(); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sql = "UPDATE literatures set spot = ?, code = ?, language = ?, count = ?, litcode = ? WHERE id = ?";
$q = $pdo->prepare($sql); 
$q->execute(array($spot,$code,$language,$count,$litcode,$id)); 
Database::disconnect();
2021-03-08