所以这只是一个建议,因为我从未尝试过,但经过一番思考后,我认为这将是一个有趣的探索选择。由于我对 PHP 和 PDO 还很陌生,我相信还有其他更好的方法。
也许您可以尝试使用try
PHP 的函数,然后代替回显(如果失败) 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 语句中的 die 之后省略回显的文本。