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


Update table, add data if doesnt exist

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

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

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

使用REPLACE语句而不是UPDATE。它的工作原理与INSERT语句完全相同,但如果存在具有相同主键的数据,它将替换数据。

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

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

首先,不赞成使用mysql_queryPDO

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

第三,使用http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html用于插入if不存在else更新case。