用例:创建了一个记录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查询中有任何错误吗?
您正在尝试绑定,$litcode但是已经绑定了CONCAT(language,'-',code)。您?的查询中有5个,但是您试图绑定6个参数。
$litcode
CONCAT(language,'-',code)
?
将您的代码更改为此:
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();