使用PHP 5.5.9與PDO_OCI,Oracle 12.1。我收到一條OCI_SUCCESS_WITH_INFO消息,表示密碼即將過期。但是,由於PDO將其作爲例外引發,因此連接未建立。如果只是一條警告或信息性消息,我該如何忽略異常?PDO OCI:信息異常成功
以下是錯誤消息:
Database Connection failed: SQLSTATE[HY000]: OCISessionBegin: OCI_SUCCESS_WITH_INFO: ORA-28002: the password will expire within 41 days
其次:
Fatal error: Call to a member function setAttribute() on a non-object in /htdocs/ciatools_dev/promise/Classes/PromiseVars.php on line 257
和產生它的代碼:
try {
$this->dbconn = new PDO("oci:dbname=$dbwc",'username', 'password');
} catch (PDOException $e) {
echo 'Database Connection failed: ' . $e->getMessage();
}
$this->dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
是的,這是一個很好的解決這個錯誤的方法,但是我在尋找的是一種讓PDO認識到錯誤不是致命異常的方法。例如,我還在另一個應用程序中使用MDB2,而在第三個應用程序中使用OCI8 - 都連接到同一個數據庫 - 並且它們顯示警告但仍創建連接對象。我想將所有內容都轉換爲PDO,但需要先解決此問題。 – jlemley