Nic*_* W. 3 php sql postgresql propel
我有一个很大的SQL函数,我希望通过PHP/Propel在PostgreSQL数据库上使用预处理语句执行,如下所示:
$sql = "lots of SQL statements";
$statement = $propelPDO->prepare($sql);
$statement->execute();
Run Code Online (Sandbox Code Playgroud)
在我试图执行的SQL语句中,有许多调用"引发信息..."和"引发警告......",它们显示调试信息.从命令行执行SQL,我可以看到这些有助于调试SQL的注意事项:
psql -h hostname database username < lots_of_sql_statements.sql
Run Code Online (Sandbox Code Playgroud)
我的问题:有没有办法从PHP中捕获SQL中引发的信息和警告通知,以便我可以将它们记录下来以供以后分析?我在很多不同的记录上运行SQL,能够记录通知而不必为每个单独的命令行查看调试信息会很棒.
好吧,如果您使用实际的Propel对象,您可以通过捕获来捕获消息 PropelException
try {
$propelObject
->setSomething('foo')
->save()
;
} catch (PropelException $pe) {
someLoggingFunction($pe->getMessage());
}
Run Code Online (Sandbox Code Playgroud)
否则,您只是局限于PDO错误处理功能:
http://www.php.net/manual/en/pdo.error-handling.php
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |