更新表,如果不存在则添加数据

时间:2015-12-12 08:51:51

标签: php mysql

我正在尝试更新表并添加数据,如果它不存在于表行中。

$data = "red flowers";
$id = "12";

mysql_query("update shares set data = data + '".$data."'  WHERE id = '".$id."' LIMIT 1") 

但它不起作用。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

使用REPLACE语句代替UPDATE。 它与INSERT语句完全相同,但如果存在具有相同主键的数据,它将替换数据。

例: mysqli_query("REPLACE INTO shares (id,data) values (".$id.",'".$data."')");

您应该清理数据以避免SQL注入。 您需要DELETE权限才能使此语句生效

答案 1 :(得分:0)

首先, mysq_query 已弃用 mysqli_query PDO

其次,在构造查询时不要使用简单的sql语句。使用预准备语句,从而防止代码进行mysql注入。

第三,如果不存在其他更新案例,请使用http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html进行插入。