Mysql 当没有发生插入时,PDO::execute如何返回true?

Mysql 当没有发生插入时,PDO::execute如何返回true?,mysql,pdo,Mysql,Pdo,我正在使用PDO::prepare()准备一个INSERT语句。PDO::execute()返回true,$dbh->lastInsertId()始终具有下一个id,但实际上没有插入任何行 这可能是什么原因造成的?如果$dbh->lastInsertId()从该插入返回id(即没有触发其他插入),则该行显然已插入。只要仔细检查一下你的桌子就可以了。我是认真的。如果$dbh->lastInsertId()从这个插入返回id(即没有触发其他插入),那么该行显然已插入。只要仔细检查一下你的桌子就可以了

我正在使用PDO::prepare()准备一个INSERT语句。PDO::execute()返回true,$dbh->lastInsertId()始终具有下一个id,但实际上没有插入任何行


这可能是什么原因造成的?

如果
$dbh->lastInsertId()
从该插入返回id(即没有触发其他插入),则该行显然已插入。只要仔细检查一下你的桌子就可以了。我是认真的。

如果
$dbh->lastInsertId()
从这个插入返回id(即没有触发其他插入),那么该行显然已插入。只要仔细检查一下你的桌子就可以了。我是认真的。

我要在这里暗中捅一刀,打赌你事后没有运行
$dbh->commit()
。如果没有提交,它将在脚本结束或连接关闭后回滚更改


另请参见:

我要在这里暗中捅一刀,打赌你事后没有运行
$dbh->commit()
。如果没有提交,它将在脚本结束或连接关闭后回滚更改


另请参见:

我认为可能是这样,因为第二次插入有一个外键约束,它取决于第一次插入的成功与否。我在第一次插入后添加了一个
$dbh->commit()
,它确实正确显示,但第二次插入仍然会抛出一个外键约束错误。有什么想法吗?@AlienBishop在这种情况下,你需要提供更多的细节。我想可能是这样的,因为第二次插入有一个外键约束,这取决于第一次插入的成功。我在第一次插入后添加了一个
$dbh->commit()
,它确实正确显示,但第二次插入仍然会抛出一个外键约束错误。你知道为什么吗?@AlienBishop如果是那样的话,你需要提供更多的细节。