Mysqli使用预准备语句插入查询丢失

时间:2017-04-13 12:51:50

标签: php mysqli prepared-statement

我在使用预准备语句进行多次插入查询时遇到了这个问题。

我有一个循环,经过102次迭代,每次触发插入查询:

$sql = "INSERT INTO xxx SET town=?, city=?, ...";
$stmt = $conn->prepare($sql);

while(... <= 102)
{
    $stmt->bind_param("sss", $town, $city, ...);
    $stmt->execute();
}

执行期间未捕获任何错误,但数据库中仅记录了98个条目。我已经运行了几次,总是插入98个条目。在某处遗失了4个。

如果我用标准查询替换准备好的语句,则保留其他所有内容,即

while(... <= 102)
{
    $sql = "INSERT INTO xxx SET town='$town', city='$city', ...";
    mysqli_query($conn, $sql)
}

...然后它工作正常,所有102个项目都插入到数据库中。

由于准备好的语句查询不报告任何错误,我不知道它为什么缺少4个查询。

我怎么去调查这个?

由于数据来自受信任的来源,我可以使用mysqli_query但我宁愿知道发生了什么,以防我将来遇到这种情况。

0 个答案:

没有答案