我正在尝试更新表并添加数据,如果它不存在于表行中。
$data = "red flowers";
$id = "12";
mysql_query("update shares set data = data + '".$data."' WHERE id = '".$id."' LIMIT 1")
但它不起作用。这样做的正确方法是什么?
答案 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进行插入。