Rumah > pembangunan bahagian belakang > tutorial php > oop - PHP CURD类操作数据库方式(PDO_MYSQL/MySQLi)

oop - PHP CURD类操作数据库方式(PDO_MYSQL/MySQLi)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-06 20:07:13
asal
1100 orang telah melayarinya

PHP使用pdo_mysql/mysqli的预处理(prepare)方法,已经封装成类,使用数组的方式把参数绑定再执行。
但是数据表比较多时,如果把每个数据表的CURD操作都写成独立的函数就太麻烦了,那样的话文件也多,以后维护不方便。
如果把CURD封装成类,就可以方便使用了,比如获取用户表、文章表的数据,传入表名、数据和其他查询参数再执行即可。
但是这样不仅没有了灵活性,而且因为是prepare方式执行的,这样就要用很多"?"来代替参数然后再绑定,反而不知应该怎样写了(主要是select语句)。
比如获取用户表的10个注册用户:
非prepare方式:

<code>SELECT `username` FROM `users` WHERE `type` = 1 LIMIT 0, 10</code>
Salin selepas log masuk
Salin selepas log masuk

如果要把LIMIT换成其他子句,比如ORDER BY这些,直接拼接SQL语句就行了,没有难度。
但是,下面这种就麻烦了。
prepare方式:

<code>SELECT `?` FROM `?` WHERE `?` = ? LIMIT ?, ?
array('username', 'users', 'type', 1, 0, 10)</code>
Salin selepas log masuk
Salin selepas log masuk

但是在有些情况下可能就不需要LIMIT。
这样的话组织CURD的代码会很麻烦,如果包括子句,比如WORDER BY这些,将会更麻烦。
有没有简便或者折中的方法?

补充:我已用ORM解决。

回复内容:

PHP使用pdo_mysql/mysqli的预处理(prepare)方法,已经封装成类,使用数组的方式把参数绑定再执行。
但是数据表比较多时,如果把每个数据表的CURD操作都写成独立的函数就太麻烦了,那样的话文件也多,以后维护不方便。
如果把CURD封装成类,就可以方便使用了,比如获取用户表、文章表的数据,传入表名、数据和其他查询参数再执行即可。
但是这样不仅没有了灵活性,而且因为是prepare方式执行的,这样就要用很多"?"来代替参数然后再绑定,反而不知应该怎样写了(主要是select语句)。
比如获取用户表的10个注册用户:
非prepare方式:

<code>SELECT `username` FROM `users` WHERE `type` = 1 LIMIT 0, 10</code>
Salin selepas log masuk
Salin selepas log masuk

如果要把LIMIT换成其他子句,比如ORDER BY这些,直接拼接SQL语句就行了,没有难度。
但是,下面这种就麻烦了。
prepare方式:

<code>SELECT `?` FROM `?` WHERE `?` = ? LIMIT ?, ?
array('username', 'users', 'type', 1, 0, 10)</code>
Salin selepas log masuk
Salin selepas log masuk

但是在有些情况下可能就不需要LIMIT。
这样的话组织CURD的代码会很麻烦,如果包括子句,比如WORDER BY这些,将会更麻烦。
有没有简便或者折中的方法?

补充:我已用ORM解决。

<code>SELECT `username` FROM `users` WHERE `type` = ? LIMIT 0, 10
array(1)
像上面一样  只设置关键字段就行了</code>
Salin selepas log masuk

curd用单例做抽象封装,具体到表的数据库操作封装成model层,就是mvc的m

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan