PHP完全不拼接SQL的ORM是怎么实现的?
最近看了一些数据抽象层的项目,如Yii
框架的ActiveRecord
, RedBean
, doctrine2
, 但由于doctrine2
设计得复杂,我还没理清头绪,大致浏览了一下文件,发下它好像完全是抽象成对象,没有拼接SQL语句的。那没有拼接SQL语句是怎么来对数据库进行CRUD的呢?是依靠PDO的接口和方法么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不是没有拼接,而是你没有找到罢了。
我先问你,你手动像数据库查询记录,你怎么输入查询语句,它能识别的语句是什么?必须是sql语句吧。
你可以打一下log看看嘛,
就比如 CI框架中 ,就有
$this->db->last_query()类似这种吧
你没有拼接,但是别人肯定是拼接了的,因为数据库只认SQL嘛。
你再仔细看看吧,编辑器全局查找一些关键字,可能找到拼接的那部分代码的。
推荐一个短小精悍的ActiveRecord库,lloydzhou/activerecord · GitHub, 可以实现类似Yii的relation的效果。文档地址:http://lloydzhou.github.io/activerecord/