php – 从Propel ORM捕获SQL通知

我有一个很大的sql函数,我希望通过PHP / Propel在Postgresql数据库上使用预处理语句执行,如下所示:

$sql = "lots of sql statements";
$statement = $propelPDO->prepare($sql);
$statement->execute();

在我试图执行的sql语句中,有许多调用“引发信息…”和“引发警告……”,它们显示调试信息.从命令行执行sql,我可以看到这些有助于调试sql的注意事项:

psql -h hostname database username < lots_of_sql_statements.sql

我的问题:有没有办法从PHP中捕获sql中引发的信息和警告通知,以便我可以将它们记录下来以供以后分析?我在很多不同的记录上运行sql,能够记录通知而不必为每个单独的命令行查看调试信息会很棒.

解决方法:

好吧,如果你使用实际的Propel对象,你可以通过捕获PropelException来捕获消息

try {
    $propelObject
        ->setSomething('foo')
        ->save()
    ;
} catch (PropelException $pe) {
    someLoggingFunction($pe->getMessage());
}

否则,您只是局限于PDO错误处理功能

http://www.php.net/manual/en/pdo.error-handling.php

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...