2017-02-20 44 views
1

是否有像PDOStatementPDOStatement)的“已执行”标志来查看语句是否已执行(通过调用PDOStatement::execute())?还是我不得不设置自己的国旗?是否有PDO的“执行”标志?

从文档判断,似乎没有一个标志(唯一记录的属性是$queryString) - 但我认为在手动完成之前我仍然会问。主要区分准备好的已执行的语句。

+0

一个有趣的问题。看起来没有。尽管你似乎是唯一需要这样一面旗帜的人。 –

回答

4

一旦一个语句准备好了,你可以多次执行它,所以也许建设者不认为这样的标志会有用,而且我个人对你的用例也有点好奇。

但它是可能的:使用PDOStatement::errorCode,你可以得到最后一个语句的错误代码。当语句尚未执行时,此函数将返回一个exmpty字符串,并在语句执行后填充错误代码(或无错误代码00000)。

+0

我想这是唯一可以告诉的方法!我知道它可以重复使用/执行多次,但是我想避免重新执行正在被传递/不能马上执行的准备好的语句。 – Katai

+1

@Katai为什么你想传递一个准备好的声明而不是传递其结果?依靠无证技巧是你知道的一件滑溜溜的事情。 –

+0

@YourCommonSense允许在执行之前对参数进行迟后绑定(例如,当存在分页时设置限制/偏移量)。 – Katai

0

不,没有。您可以重新使用PDOStatement,这是PDO:prepare支持的用例。