我正在更新记录,以便将新内容追加到同一行中。以下是查询:
$update1 = "UPDATE review_words SET adjective = CONCAT(adjective, ',', '$adjective'), noun = CONCAT(noun, ',', '$noun') ";
if (!mysqli_query($con,$update1))
{
// die('Error: ' . mysqli_error($con));
// echo "error";
}
当表中存在某个值时,此操作效果良好。但是,如果表记录为空,则不会连接该值。
我能克服这个问题吗?
请改用CONCAT_WS()
。这正是你想要的。
UPDATE review_words
SET adjective = CONCAT_WS(',', adjective, '$adjective'),
noun = CONCAT_WS(',', noun, '$noun')
请注意,您很容易受到SQL注入的攻击。请将MySQLi或PDO与参数化查询一起使用以避免此问题。
你能试着用这样的串联代替吗:
update1 = "UPDATE review_words SET adjective = CONCAT(IFNULL(adjective, ''), ',', '$adjective'), noun = CONCAT(IFNULL(noun, ''), ',', '$noun') ";