如何在MySQL UPDATE查询期间连接两个字符串?

时间:2015-07-28 06:14:30

标签: php mysql sql string pdo

用例:创建了一条记录 现货,代码,语言,计数 ......后来发现输入的语言错了。尝试使用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查询中的任何错误?

1 个答案:

答案 0 :(得分:3)

您正在尝试绑定$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();