【问题标题】:Update table, add data if doesnt exist更新表,如果不存在则添加数据
【发布时间】:2015-12-12 17:15:27
【问题描述】:

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

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

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

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

【问题讨论】:

  • 错误信息是什么
  • 这就是你使用的所有代码吗?
  • 您能否提供更多详细信息?当您将字符串 red flowers 添加到当前的 data 内容时,您期望会发生什么?
  • 有没有什么捷径可以检查数据是否存在,然后加值?

标签: php mysql


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    首先 mysql_query 不推荐使用 mysqli_queryPDO

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

    第三,如果不存在则使用http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html进行插入,否则更新情况。

    【讨论】:

      猜你喜欢
      • 2021-12-10
      • 2011-10-16
      • 2014-07-04
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2016-11-19
      相关资源
      最近更新 更多