所以這只是一個建議,因爲我從來沒有嘗試過這個,但考慮一下後,我認爲這將是一個有趣的選項來探索。由於我對PHP & PDO相當陌生,我相信還有其他更好的方法。
也許你可以嘗試使用PHP的try
函數,然後代替echo'ing(如果失敗)PDOException,你可以運行另一個函數將它打印到文本文件。就像是。
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
$strFileName = 'whatever.txt';
if(!is_writable($strFileName))
die('Change permisions to ' . $strFileName);
$handle = fopen($strFileName, 'a+');
fwrite($handle, "\r" . $e->getMessage() . "\r");
fclose($handle);
}
?>
這樣你就可以避免一個數據庫連接(這是我想這個問題),但仍保存錯誤。 您可能想要在if語句中省略echo'd文本。
你的問題到底是什麼?您是否要求我們提供完整的解決方案? – Blazemonger 2013-05-08 18:00:41
只是一些常規的方向,比如使用它來捕獲錯誤,然後將它們寫出到日誌文件中,並重定向用戶。我想我不知道捕捉錯誤的最佳方法。我不想重寫所有的命令。 – 2013-05-08 18:05:01
你有沒有把這個重做? http://php.net/manual/en/pdo.error-handling.php PHP手冊,查看catch和PDOException部分 – 2013-05-08 18:07:49