如果列存在,则为mysql更新表(foreach)

时间:2011-07-06 21:10:38

标签: php mysql

我一直在玩这个:

foreach($textnode as $key => $value) {

$value = stripslashes($value);
 $value = mysql_real_escape_string($value, $con);

 mysql_query("INSERT INTO paragraphs (paragraphs, url)
 VALUES ('$value', '$url')");



}

我一直在尝试更新网址“paragraph”以了解网址已存在的位置

这似乎不太好用,因为它只是用第1段替换段落中的每一行。 (一遍又一遍地重复)

mysql_query("UPDATE paragraphs SET paragraphs = '$value'
 WHERE url = '$url'"); 

2 个答案:

答案 0 :(得分:1)

url字段是唯一的吗?

如果没有,请在其上添加UNIQUE约束,并使用INSERT INTO . . . ON DUPLICATE KEY UPDATE,如下所示:

 mysql_query("INSERT INTO paragraphs (paragraphs, url)
                VALUES ('$value', '$url')
              ON DUPLICATE KEY
                UPDATE paragraphs = '$value'
             ");

或(当'$value'已存在时,您想要“追加”新的url吗?):

 mysql_query("INSERT INTO paragraphs (paragraphs, url)
                VALUES ('$value', '$url')
              ON DUPLICATE KEY
                UPDATE paragraphs = CONCAT(paragraphs, '$value')
             ");

答案 1 :(得分:0)

尝试运行查询

SELECT paragraphs, url
FROM   paragraphs;

查看您的表格真正包含的内容。您可能已将所有相同的URL放入表中。这将解释更新行为。