php – 如何将Propel Criteria编译为SQL

前端之家收集整理的这篇文章主要介绍了php – 如何将Propel Criteria编译为SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何编译Propel Criteria以清除sql
我试过$criteria-> toString();但这不是我的预期.
我也尝试了ModelPeer :: doSelectStmt($criteria)但它返回了原始的sql(必需的参数替换)
首先,重要的是要注意Propel将PDO与预处理语句一起使用,因此您不会在 PHP中获得完全“内置”的sql语句.使用Criteria-> toString()是一个很好的开始,但正如Peter提到的那样,很多工作确实由BasePeer :: createSelectsql()方法完成.

这是最完整的方法(来自Propel),看看sql的外观(带占位符)和将被替换的参数:

$params = array(); // This will be filled with the parameters
$sql = BasePeer::createSelectsql($criteria,$params);

print "The raw sql: " . $sql . "\n";
print "The parameters: " . print_r($params,true) . "\n";

请注意,只需在数据库级别记录查询,您就可以获得更好的里程.当然,如果PDO配置(或支持)使用本机db预处理语句,那么您可能仍然会在db中看到占位符.

猜你在找的PHP相关文章