首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在重复键更新时创建新记录

在重复键更新时创建新记录
EN

Stack Overflow用户
提问于 2011-12-30 07:21:00
回答 2查看 291关注 0票数 0

我在下面的代码中遇到了问题,它似乎工作正常,并且创建记录很好,问题是每次我点击提交,而不是更新记录,它只是创建一个新的记录。如果我关闭主键的自动增量,它会很好地更新记录,但随后不会创建任何新的记录,看起来不是其中之一:-S

代码语言:javascript
运行
复制
<?php
 $query = mysql_query("
  INSERT INTO hqfjt_chronoforms_data_emailform 
   (cf_id,cf_uid,emailformname,datesent)
  VALUES
   ('$_POST[cf_id]','$_POST[cf_uid]','$_POST[emailformname]','$_POST[datesent]')
  ON DUPLICATE KEY UPDATE
   datesent='$_POST[datesent]';
 ") or die(mysql_error());
 ?>
EN

Stack Overflow用户

发布于 2011-12-30 07:38:38

我不能想象这就是问题所在,但当您将ID转换为int并省略引号时,是否会发生同样的事情?

代码语言:javascript
运行
复制
<?php
 $query = mysql_query("
  INSERT INTO hqfjt_chronoforms_data_emailform 
   (cf_id,cf_uid,emailformname,datesent)
  VALUES
   (" . (int) $_POST['cf_id'] . ",'$_POST[cf_uid]','$_POST[emailformname]','$_POST[datesent]')
  ON DUPLICATE KEY UPDATE
   datesent='$_POST[datesent]';
 ") or die(mysql_error());
 ?>

顺便说一句,您真的不应该在没有mysql_real_escape_string的情况下在查询中使用$_POST变量,或者更好的做法是使用预准备语句(PDO或mysqli)。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8674638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档