我正在使用CodeIgniter v3.1.4,我想利用查询生成器。
据我所知,我需要做的就是在$query_builder
中将config/database.php
设置为TRUE,这是我所做的。但是,当我尝试使用该类时,我收到以下错误:
消息:调用未定义的方法CI_DB_odbc_driver :: where()
我正在使用Wiredesignz' HMVC实现,它覆盖(除其他外)Loader类,通过它传递$query_builder
变量。
我有点惊讶这个功能可以通过全局变量打开/关闭,而不是直接通过db配置数据。尽管如此,我还是试图开启和关闭它而没有成功。
不确定它是否相关,但我使用的是ODBC驱动程序,我的查询如下所示:
$this->db->where('userid', $userid)->set($data);
知道我缺少什么吗?
答案 0 :(得分:0)
我在尝试过渡到odbc时遇到了同样的问题。
在CI 3.1.0中,他们在他们的querybuilder上放弃了对ODBC的支持(我认为 - 这首先打败了使用QB的原因)
原因是它们的实现导致了SQL注入漏洞;但他们似乎没有计划修复它;而是完全禁用QB for odbc,锁定你。
来源:https://forum.codeigniter.com/thread-65803.html
"升级笔记":http://www.codeigniter.com/user_guide/installation/upgrade_310.html
Github问题说明修复不可靠:https://github.com/bcit-ci/CodeIgniter/pull/5197
答案 1 :(得分:0)
检查 application/config/database.php 中的以下选项:
$query_builder = TRUE;
$query_builder
应该是 true
如果你想使用 CI 的查询构建器类