在mysql调用上循环时抛出未知的PDO异常'General Error'

JM4*_*JM4 2 php while-loop

我在我构建的数百个页面上使用以下(或类似)代码:

$stmt = $db->prepare("SELECT * FROM table");
$stmt->execute();

while($row = $stmt->fetch()) {

    $id = $row['id'];
    $name = $row['name'];

    do something with data returned...


    $id = NULL;
    $name = NULL;

}
Run Code Online (Sandbox Code Playgroud)

从现在开始,我开始在几页上收到以下错误:

致命错误:未捕获异常'PDOException',消息'SQLSTATE [HY000]:C:.... page.php中的常规错误:28堆栈跟踪:#0 C:.. page.php(28):PDOStatement-> fetch()#1 {main}抛出

第一个循环将运行(没有问题)但在第一个循环之后给出错误.错误代码(第28行)引用该行:

while($row = $stmt->fetch()) {
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这个.作为测试,我修改了代码以将所有返回的结果存储为:

$stmt = $db->prepare("SELECT * FROM table");
$stmt->execute();

$rows = $stmt->fetchALL();

foreach($rows as $row) {

    $id = $row['id'];
    $name = $row['name'];

    do something with data returned...


    $id = NULL;
    $name = NULL;

}
Run Code Online (Sandbox Code Playgroud)

而且系统有效.知道为什么?

JM4*_*JM4 5

注意:在再次查看"do something"区域后 - 我意识到数据库初始化程序($ sql)在select和一个insert/update语句中是相同的.将这些更改为唯一值可以纠正此问题.

谢谢