query()函数被设计用来执行自定义的SQL语句。
如果你需要在应用中执行自定义的SQL语句,请务必使用CakePHP的Sanitize库,该库提供了避免跨站脚本攻击(XSS Attack:Cross Site Scripting Attack)和注入式攻击(Injection)的一系列帮助函数。
在query()执行的返回数据中,使用数据表名作为key而非模型(model)名。比如:
1. $this->Picture->query("SELECT * FROM pictures LIMIT 2;");
1. Array
2. (
3. [0] => Array
4. (
5. [pictures] => Array
6. (
7. [id] => 1304
8. [user_id] => 759
9. )
10. )
11. [1] => Array
12. (
13. [pictures] => Array
14. (
15. [id] => 1305
16. [user_id] => 759
17. )
18. )
19. )
如果想使用模型名作为数组的key,以使返回的结果与find()一致,可以采用以下的写法:
1. $this->Picture->query("SELECT * FROM pictures AS Picture LIMIT 2;");
cakephp学习之Model(3)--------执行自定义的SQL语句
最新推荐文章于 2018-12-04 23:33:30 发布