加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何将Propel Criteria编译为SQL

发布时间:2020-12-13 22:40:33 所属栏目:PHP教程 来源:网络整理
导读:如何编译Propel Criteria以清除SQL? 我试过$criteria- toString();但这不是我的预期. 我也尝试了ModelPeer :: doSelectStmt($criteria)但它返回了原始的sql(必需的参数替换) 首先,重要的是要注意Propel将PDO与预处理语句一起使用,因此您不会在 PHP中获得完
如何编译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中看到占位符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读