【问题标题】:PHP: Getting duplicate inserts when utilizing SQLitePHP:使用 SQLite 时获得重复插入
【发布时间】:2011-02-03 18:39:42
【问题描述】:

在脚本的开头,我删除了表格中的所有内容。运行下面的代码时,它会迭代 3 次(每条记录一个),但是当我在信息被复制后检查数据时(6 次插入而不是 3 次)。

  foreach ($response2->records as $record) {    

    $accountid = $record->fields->AccountId;
    $resident_title = $record->fields->Resident_Title__c;
    $supervisor_title = $record->fields->Supervisor_Title__c;
    $position_proposal_url = $record->fields->Position_Proposal_URL__c;  

    $sql = "INSERT INTO Positions (AccountID, Position_Title, Supervisor_Title, Position_Url) 
    VALUES ('$accountid',
    '$resident_title',
    '$supervisor_title',
    '$position_proposal_url');";

    $result2 = $database->exec($sql);
  } 

我在最后一行之前插入了一个打印命令,以确定 SQL 的内容,并可视化它实际上只循环了 3 次。因此,基于此,我怀疑问题一定出在我的 PHP/SQL 语法上。

【问题讨论】:

  • 您是否尝试过 print_r($response2);(而不是 foreach)来查看实际上是 3 条记录还是 6 条记录?

标签: php sql sqlite pdo


【解决方案1】:

您是否有一个背景 url 为空的 CSS 或内联样式?

使用 Firefox/Firebug 或类似工具启动您的页面,让您捕获所有 http 流量 - 您的页面很可能被点击两次。

【讨论】:

  • 听起来是一个值得探索的有趣领域。我应该使用 Firebug 中的哪个区域以及我应该寻找哪些类型的东西?
  • @joseph - 启动 Firebug 后,跳转到 Net 选项卡。点击“Persist”,然后点击“Clear”,然后加载您的页面。通过将鼠标悬停在所有 POST/GET 命令上,您正在检查页面本身被检索两次的位置。
【解决方案2】:

我很确定您的数据库不应该允许重复行。修复该问题,尝试插入重复键应该会导致您可以遵循的错误。

【讨论】:

    猜你喜欢
    • 2018-05-28
    • 2022-01-09
    • 2015-01-05
    • 1970-01-01
    • 2014-01-26
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多