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