Php 什么是PDO';s`rowCount()`如果MySQL查询失败,是否返回?

Php 什么是PDO';s`rowCount()`如果MySQL查询失败,是否返回?,php,mysql,pdo,Php,Mysql,Pdo,我正在使用PDO和MySQL编写一些代码,需要非常确定更新是否成功 我希望更新1行,并使用PDO的rowCount()方法检查返回值是否为1。如果1行或0行受到影响(“已更新”或“未更新”),我知道该怎么办 这会出什么差错吗?例如,如果查询执行失败,它将返回什么?如果数据库以某种方式损坏或崩溃,该怎么办?在一个正确编写的应用程序中,它永远不会被执行-一个异常被激发,处理程序只会杀死整个脚本。如果查询执行失败,它将返回false。如果成功,则返回的值将受到行计数的影响。它可以是>=0。不要使用ro

我正在使用PDO和MySQL编写一些代码,需要非常确定更新是否成功

我希望更新1行,并使用PDO的
rowCount()
方法检查返回值是否为1。如果1行或0行受到影响(“已更新”或“未更新”),我知道该怎么办


这会出什么差错吗?例如,如果查询执行失败,它将返回什么?如果数据库以某种方式损坏或崩溃,该怎么办?

在一个正确编写的应用程序中,它永远不会被执行-一个异常被激发,处理程序只会杀死整个脚本。

如果查询执行失败,它将返回false。如果成功,则返回的值将受到行计数的影响。它可以是>=0。不要使用rowCount检查更新是否发生或否,因为它应该始终返回一行,除非查询失败(由于错误)


sqrt(-1)喜欢php

检查
execute()
的返回值并查看查询是否以这种方式失败不是更好吗?在我的例子中,“它应该总是返回一行,除非查询失败”,还是总是<代码>更新。。。其中可以更新N行,因此
行数
应该返回N,对吗?在更新的情况下-始终。如果你有,那就错了。语法错误或引用不存在的表等,至于您的注释,不完全正确。若您将使用相同的数据更新行(所以实际上不会修改行),则受影响的行计数将为0。但通常是的,它将返回修改行的计数。我认为应该有第二行,它应该指出有多少行与
where
子句匹配——如果mysql workbench知道这一点,这意味着DBMS必须提供关于响应的此类信息,但我从未使用过它。