林先生,哪个PHP框架的数据库是支持prepare和bind绑定的

By ivanilla at 2016-05-31 • 0人收藏 • 2671人看过

为了方便操作,我写了个CRUD类。

结果在查询(Read)时不知什么原因居然吃掉了限制的256M内存。

估计我的代码还存在某些不足,不过主流的PHP框架的数据库封装复杂而且似乎都不支持prepare?有没有个能拿来参考的。

17 个回复 | 最后更新于 2016-06-01
2016-05-31   #1

主流框架都是ORM,我这个程序的那个PDO就支持prepare不是么?

2016-06-01   #2

回复#1 @lincanbin :

你这种方法跟我的差不多,但是问题在于每次查询需要指定数据表名称。

也就是说如果对不同的数据进行CRUD(管理)的话,比如用户、帖子、标签等,就需要编写多个函数,甚至封装成多个文件,我希望能够通过统一的接口来简化这一过程。

2016-06-01   #3

回复 #2 @ivanilla :

如果你OOP没白学的话,应该知道你这个需求,需要的是一个ORM。

2016-06-01   #4

回复#3 @lincanbin :

我没白学,书本介绍太浅而已。

我在SF问了都没人回答得足够详细的。

2016-06-01   #5

回复#4 @ivanilla :

那么解决方案非常简单,你去找一个ORM,或者自己造一个ORM轮子。

2016-06-01   #6

回复#5 @lincanbin :

好了,我去github找了个单文件的ORM。

2016-06-01   #7

回复#6 @ivanilla :

注意Review下代码,别出什么安全漏洞。

2016-06-01   #8

回复#7 @lincanbin :

https://github.com/noetix/Simple-ORM/blob/master/SimpleOrm.class.php

我用的这个,他支持prepare,不过他只封装了mysqli的,我还要改进让他支持pdo。

2016-06-01   #9

回复#8 @ivanilla :

Mysqli到PDO的迁移也是很容易的,需要注意的是,PDO不原生支持WHERE IN的参数绑定。

不能绑定类似下面这样的语句:

SELECT * FROM `table` WHERE id IN (?);

除非自己另作处理。

2016-06-01   #10

回复#9 @lincanbin :

明白了,谢谢。

2016-06-01   #11

回复#9 @lincanbin :

我发现我开始写的就是一个简单的ORM,只是我不知道这个术语。

另外我改用arrayDB了:https://github.com/mstdokumaci/arraydb

2016-06-01   #12

回复 #0 @ivanilla :

你的那个,还不能称为ORM。

2016-06-01   #13

回复#12 @lincanbin :

你没看过代码,不能武断地做决定。

2016-06-01   #14

回复 #13 @ivanilla :

从2楼的描述可以看出…

2016-06-01   #15

回复#14 @lincanbin :

我封装之后不需要写任何SQL语句。

由类里面的相应方法自动生成SQL语句。

2016-06-01   #16

回复 #15 @ivanilla :

但是2楼的描述,显然离ORM还有点距离。

2016-06-01   #17

回复#16 @lincanbin :

那你认为缺什么?

登录后方可回帖

登 录
信息栏

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.9.0
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

粤公网安备 44030602003677号
粤ICP备17135490号

Loading...