codeigniter 项目将 MY SQL 5.7 迁移到 8.0,在登录过程中出现语法错误

问题描述 投票:0回答:1

它是一个 codeigniter 项目,我在登录过程中遇到错误 从sql版本5.7转移到8.0

数据库发生错误 错误编号:1064

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 4 行 '' 附近使用的正确语法

SELECT

email
,
role
FROM
tbl_admin
WHERE
email
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;

    }

需要帮助解决

php mysql codeigniter
1个回答
0
投票

如果变量 $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
© www.soinside.com 2019 - 2024. All rights reserved.