Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在什么条件下,PDO:execute()将返回false?_Php_Exception_Pdo - Fatal编程技术网

Php 在什么条件下,PDO:execute()将返回false?

Php 在什么条件下,PDO:execute()将返回false?,php,exception,pdo,Php,Exception,Pdo,根据,成功时返回TRUE,失败时返回FALSE 什么是成功或失败 我已经对它进行了测试,返回了一个空集,或者由于WHERE子句没有插入行 只有在SQL无效的情况下才会这样做吗?如果是这样的话,这不也会引发异常吗?SQL错误、连接断开等。。。当您没有启用抛出异常时。对于任何无法成功执行的查询,它将返回false。原因可能包括数据库断开连接、查询语法错误、试图调用未定义的SQL函数等。空结果集不是失败。出现错误时返回false。由于缺少连接等原因,可能会出现不正确的参数。@JayBlanchard

根据,成功时返回TRUE,失败时返回FALSE

什么是成功或失败

我已经对它进行了测试,返回了一个空集,或者由于WHERE子句没有插入行


只有在SQL无效的情况下才会这样做吗?如果是这样的话,这不也会引发异常吗?

SQL错误、连接断开等。。。当您没有启用抛出异常时。

对于任何无法成功执行的查询,它将返回
false
。原因可能包括数据库断开连接、查询语法错误、试图调用未定义的SQL函数等。空结果集不是失败。

出现错误时返回false。由于缺少连接等原因,可能会出现不正确的参数。@JayBlanchard I
尝试
如果查询不起作用,则会出现一个
catch
块。所有这些条件是否也会引发异常?我询问的原因是我有一个
try
catch
块,它将回滚任何更改。我是否需要测试它返回的内容,或者是否也会执行
catch
块?您需要显式设置PDO以抛出异常。默认情况下不会。如果您这样做了,
execute()
应该抛出异常,而不是返回
false
。啊,这是有道理的。在创建连接时,我总是包括
PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION
,我从未见过他们不抛出异常。依赖异常是可以的,还是应该对异常进行测试并在未成功时手动抛出异常?异常应该是完全可靠的。当启用抛出异常时,永远不会正确,在返回false之前,它将抛出一个PDOExceptionIt。如果查询中列出了参数,但ExecuteB中没有提供任何参数,那么它也可能返回false。但是,您的最新示例也将抛出一个异常,是吗?是的,它将抛出一个异常PARAMS_NOT_BOUND或其他什么。