我是 CodeIgniter 的新手,我正在努力处理 Active Record 类及其添加到我的查询中的撇号:
这是 CodeIgniter 输出的查询(通过 enable_profiler):
SELECT `login`.`idlogin`, `login`.`username`, `login`.`password`
FROM (`login`, `pessoa`)
WHERE `login`.`username` = 'user1'
AND `login`.`password` = 'pass1'
AND `pessoa`.`nBI` = 'login.pessoa_nBI'
LIMIT 1
user1 和 pass1 是登录表单中的字符串(忽略明文密码)。这会产生 0 个结果。
但是正确的查询,即我想要的结果是:
SELECT `login`.`idlogin` , `login`.`username` , `login`.`password`
FROM (`login` , `pessoa`)
WHERE `login`.`username` = 'user1'
AND `login`.`password` = 'pass1'
AND `pessoa`.`nBI` = login.pessoa_nBI
LIMIT 1
唯一的区别是倒数第二行,login.pessoa_nBI 没有被撇号包围。
这会产生一个结果,因为它应该。数据库是 MySQL。
编辑:这是活动记录代码:
$this -> db -> select('login.idlogin, login.username, login.password');
$this -> db -> from('login,pessoa);
$this -> db -> where('login.username', $username);
$this -> db -> where('login.password', $password);
$this -> db -> where('pessoa.nBI', login.pessoa_nBI');
$this -> db -> limit(1);
我究竟做错了什么?
谢谢