如果record为空,则将值连接到表中

时间:2014-04-13 11:31:14

标签: php mysql sql

我正在更新记录以将新内容附加到同一行。 这是查询:

    $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";
    }

当表中有一些值时,这可以正常工作。但是如果表记录为空,则不会连接该值。

我可以克服这个问题吗?

2 个答案:

答案 0 :(得分:1)

请改用CONCAT_WS()。这正是你要找的东西。

UPDATE review_words
SET adjective = CONCAT_WS(',', adjective, '$adjective'),
    noun = CONCAT_WS(',', noun, '$noun')

请注意,您很容易受到SQL injection的攻击。请使用带有参数化查询的MySQLi或PDO来避免此问题。

答案 1 :(得分:1)

请你试着用这样的连接代替:

update1 = "UPDATE review_words SET adjective = CONCAT(IFNULL(adjective, ''), ',', '$adjective'), noun = CONCAT(IFNULL(noun, ''), ',', '$noun') ";