如何高效使用CodeIgniterQueryBuilder构建数据库查询?
- 内容介绍
- 相关推荐
本文共计976个文字,预计阅读时间需要4分钟。
最常见的原因为未指定表名,或遗漏了from语句。CodeIgniter 3 的查询构建器不是链式调用执行,如select()、where()等只是拼接条件,真正的查询是通过get()或get_compiled_select()执行。默认情况下,get()查询返回NULL,结果集为空集合,不会报错也不会提示。
- 必须显式写
$this->db->from('users')->get(),或把表名传给get('users') -
get()返回的是对象(CI_DB_result),不是数组;要取数据得调result()、row()或result_array() - 如果只想要 SQL 字符串用于调试,用
get_compiled_select('users'),它不执行,只生成语句
CodeIgniter 3 中 where() 的数组参数和字符串参数区别在哪?
数组形式自动转义值,安全;字符串形式完全不处理,容易被注入,也容易因引号/空格出错。但字符串形式能写更复杂的条件,比如字段比较、函数调用。
本文共计976个文字,预计阅读时间需要4分钟。
最常见的原因为未指定表名,或遗漏了from语句。CodeIgniter 3 的查询构建器不是链式调用执行,如select()、where()等只是拼接条件,真正的查询是通过get()或get_compiled_select()执行。默认情况下,get()查询返回NULL,结果集为空集合,不会报错也不会提示。
- 必须显式写
$this->db->from('users')->get(),或把表名传给get('users') -
get()返回的是对象(CI_DB_result),不是数组;要取数据得调result()、row()或result_array() - 如果只想要 SQL 字符串用于调试,用
get_compiled_select('users'),它不执行,只生成语句
CodeIgniter 3 中 where() 的数组参数和字符串参数区别在哪?
数组形式自动转义值,安全;字符串形式完全不处理,容易被注入,也容易因引号/空格出错。但字符串形式能写更复杂的条件,比如字段比较、函数调用。

