首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >第一次错误时插入唯一记录终止前端循环中的mysql错误吗?

第一次错误时插入唯一记录终止前端循环中的mysql错误吗?
EN

Stack Overflow用户
提问于 2016-12-05 07:46:34
回答 2查看 368关注 0票数 0

我正在将mySQL结果插入到具有帐户号和交易日期的唯一索引的表中。

代码语言:javascript
复制
foreach ($fulldata as $partdata){
       $name=$partdata['name'];
       $acno=$partdata['acno'];
       $trdate=$partdata['trdate'];
       $sql="INSERT into mytable (name,acno,trdate) values ('$name','$acno','$trdate')";
       $result=mysqli_query($con,$sql) or die(mysqli_error($con));
}

如果条目是重复的,则错误显示为“.的重复条目”。循环就终止了。即使数据库中的现有记录没有重复的值,它也不会占用下一条处理记录。

理想情况下,它应该只显示那些有重复条目的行的错误,但是插入所有那些是唯一的新条目的记录。还有其他类型的循环可以帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-05 08:16:48

我会使用try/catch方法来回显这些语句。但我用PDO。

代码语言:javascript
复制
foreach ($fulldata as $partdata){
       $name=$partdata['name'];
       $acno=$partdata['acno'];
       $trdate=$partdata['trdate'];
       $sql="INSERT into mytable (name,acno,trdate) values (?,?,?)";

       try {

            $query = $db->prepare($sql);
            $query->execute(array($name, $acno, $trdate));

       } catch (PDOException $e) {
            echo $e->getMessage();
            echo 'Fail to execute following statement: ' . $sql ."\r\n";    
      }    
}

现在,我还将选择哪个insert语句失败。

票数 1
EN

Stack Overflow用户

发布于 2016-12-05 08:03:05

您可以使用INSERT ... ON DUPLICATE KEY UPDATE

代码语言:javascript
复制
  INSERT INTO mytable (name,acno,trdate) VALUES ('$name','$acno','$trdate')
  ON DUPLICATE KEY UPDATE name=name;

INSERT IGNORE INTO

代码语言:javascript
复制
  INSERT IGNORE INTO mytable (name,acno,trdate) VALUES ('$name','$acno','$trdate')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40969444

复制
相关文章

相似问题

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