一个MySQL插入使用php生成3行而不是1行


One MySQL Insert Is Generating 3 Rows Instead of 1 Row using php

我有一个奇怪的问题。

当我对PHP文件执行以下语句时,它生成了3行而不是1行。是什么原因造成的????程序没有循环。我正在使用smarty和php与mysql数据库。

$sql ="INSERT INTO tbl_order ('user_id', 'product_id', 'package_id', 'order_payment_amt',
      'order_product_items', 'order_revisions', 'order_transactionid', 'order_status',
      'order_turnaroundtime', 'order_date')
VALUES ('$user_id', '$product_id', '$package_id', 
        '$order_payment_amt', '$order_product_items', '$order_revisions', '$order_transactionid', 
        '$order_status', '$order_turnaroundtime', '$created_date')";
$order_id = $Db->execInsertQuery($sql); return $order_id;

很明显,某些导致该查询执行三次。但是,如果不检查程序流程,就不可能知道是什么、如何做或为什么做。

如果您没有日志记录工具,也没有调试器,您可以尝试添加一个UNIQUE INDEX,比如user_id, product_id, package_id,这样额外的INSERT就会失效,导致程序转储一些可能有用的信息,关于它在哪里崩溃。

查询本身只会插入一行。您可能会多次执行它,如果没有周围的代码,这是不可理解的。