Kohana 准备好的语句或查询构建?

Posted

技术标签:

【中文标题】Kohana 准备好的语句或查询构建?【英文标题】:Kohana Prepared Statements or Query Building? 【发布时间】:2010-12-02 12:42:43 【问题描述】:

我正在尝试为一个新项目掌握 Kohana 框架。我只是想问一下您对执行查询的两种不同方法有何看法。一种方法有什么限制吗?

http://kohanaframework.org/guide/tutorials.databases 1. 准备好的报表 2.查询构建

我想在开始构建应用程序之前做出正确的决定。

非常感谢!

【问题讨论】:

【参考方案1】:

两者都有自己的机制来逃避用户输入。我更喜欢查询生成器,因为我认为以后更容易阅读。但这只是口味问题。两者是相同的,并且具有相同的限制。

Offtopic:看看 Kohana 3 附带的 ORM。它真的很简单,而且工作起来很迷人。我只将查询生成器用于复杂查询。

【讨论】:

感谢 Stegeman - 一直在研究 Kohana 的 ORM。认为这就是要走的路。一些有兴趣的链接: github.com/jheathco/kohana-orm/wiki 和 github.com/kohana/userguide/blob/master/guide/tutorials.orm.md Both are the same and will have the same limitations. ? Prepared statements 与 Query Builder 不同。例如,prepared stmt 在用于循环时会减少数据库执行时间。【参考方案2】:

当您无法使用 QBuilder 构建查询时,Prepared Statements 非常有用(特定于数据库引擎的命令,例如“UNLOCK TABLES”)。对于所有标准查询(选择/插入/更新/删除),我推荐您使用 QBuilder。

【讨论】:

【参考方案3】:

如果你会写SQL,那就写吧。查询生成器适用于不会编写 SQL 的人。使用 ORM 是另一回事,这完全取决于偏好。我喜欢手动编写所有查询,这使我更容易手动测试数据库。

【讨论】:

以上是关于Kohana 准备好的语句或查询构建?的主要内容,如果未能解决你的问题,请参考以下文章

Spring JPA - 准备好的语句查询?

限制准备好的语句一次执行一个查询

准备好的语句不使用预期的索引

从 PDO 准备语句中检索(或模拟)完整查询

如何将此代码转换为准备好的语句或 jdbc 中的语句? [关闭]

是否可以在没有准备好的语句(Node.js 和 MSSQL)的情况下防止 SQL 注入