它是一个 codeigniter 项目,我在登录过程中遇到错误 从sql版本5.7转移到8.0
数据库发生错误 错误编号:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 4 行 '' 附近使用的正确语法
SELECT
,FROMrole
WHEREtbl_admin
IS NULL AND就像二进制password
文件名:models/Dashboard_model.php
行号:23
代码
public function load_user_detail($email, $password) {
$q = $this->db
->select('email, role')
->from('tbl_admin')
->where('email', $email)
->where('password like binary', $password)
->get();
$result = $q->result_array();
return $result;
}
需要帮助解决
如果变量 $password 为 NULL,则生成的 SQL 查询为
SELECT * FROM `tbl_admin` WHERE `email` IS NULL AND `password` like binary
这是不正确的语法并导致您报告的错误;
首先找出函数中返回的 $password 变量为何为 NULL 的原因。如果您使用 NULL 密码进行计数,则可以在查询之前使用此行来避免 SQL 语法错误。
$password=$password?$password:0;
NULL
改为0
,返回结果为空数组
只是为了向您展示不同的 SQL 语法,它现在看起来像:
SELECT * FROM `tbl_admin` WHERE `email` IS NULL AND `password` like binary 0