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

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

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

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

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

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

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

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

ivanilla
2016-06-01
#2

回复#1 @lincanbin :

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

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

lincanbin
2016-06-01
#3

回复 #2 @ivanilla :

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

ivanilla
2016-06-01
#4

回复#3 @lincanbin :

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

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

lincanbin
2016-06-01
#5

回复#4 @ivanilla :

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

ivanilla
2016-06-01
#6

回复#5 @lincanbin :

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

lincanbin
2016-06-01
#7

回复#6 @ivanilla :

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

ivanilla
2016-06-01
#8

回复#7 @lincanbin :

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

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

lincanbin
2016-06-01
#9

回复#8 @ivanilla :

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

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

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

除非自己另作处理。

ivanilla
2016-06-01
#10

回复#9 @lincanbin :

明白了,谢谢。

ivanilla
2016-06-01
#11

回复#9 @lincanbin :

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

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

lincanbin
2016-06-01
#12

回复 #0 @ivanilla :

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

ivanilla
2016-06-01
#13

回复#12 @lincanbin :

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

lincanbin
2016-06-01
#14

回复 #13 @ivanilla :

从2楼的描述可以看出…

ivanilla
2016-06-01
#15

回复#14 @lincanbin :

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

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

lincanbin
2016-06-01
#16

回复 #15 @ivanilla :

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

ivanilla
2016-06-01
#17

回复#16 @lincanbin :

那你认为缺什么?


登 录


现在注册

QQ  登 录    Weibo  登 录    GitHub  登 录