$PDOStatement的問題
self::execcute中用self::free釋放了$PDOStatement后就直接執(zhí)行了exec()。如果連接沒錯(cuò),sql語句出錯(cuò)了,self::haveErrorThrowException就會(huì)根據(jù)$PDOStatement是否為空?qǐng)?zhí)行不同的操作。但是$PDOStatement不是被free清理后就一直為空嗎?為什么會(huì)判斷不是空的?
self::execcute中用self::free釋放了$PDOStatement后就直接執(zhí)行了exec()。如果連接沒錯(cuò),sql語句出錯(cuò)了,self::haveErrorThrowException就會(huì)根據(jù)$PDOStatement是否為空?qǐng)?zhí)行不同的操作。但是$PDOStatement不是被free清理后就一直為空嗎?為什么會(huì)判斷不是空的?
2016-11-01
舉報(bào)
2017-02-11
主要是haveErrorThrowException中的這句:
因?yàn)閜do類(self::$link)有自己的errorInfo方法,同樣PDOStatement
類同樣有重名的errorInfo方法,所以這里必須現(xiàn)清空下,否則的話很有可能執(zhí)行的是PDOStatement中的errorInfo方法.
2016-11-01
百度找不到確切的答案,只是說PDOStatement是存儲(chǔ)一條預(yù)處理語句。但我的猜想是,PDOStatement除了可以存儲(chǔ)預(yù)處理,還能存儲(chǔ)exec返回的結(jié)果集。這樣語句就能理解了