如何在Codeigniter中编写指定的用户登录校验SQL查询语句
CodeIgniter 框架对应SQL查询实现方案
下面给出两种常用的实现方式:
- 方式一:查询构造器写法(推荐,自动处理参数转义,防SQL注入)
代码示例:// 接收的用户参数 $email = 'xxx@example.com'; $password = '用户输入的密码'; // 链式调用构造查询 $query = $this->db ->where('user_name', $email) ->where('password', $password) ->get('login'); // 读取结果 // 获取所有结果(对象数组格式) $result = $query->result(); // 单条匹配结果可以用行对象 $user = $query->row(); // 如需数组格式可以用 result_array() / row_array() - 方式二:原生查询写法
建议配合参数绑定使用,不要直接拼接SQL字符串避免注入风险:$sql = "SELECT * FROM `login` WHERE user_name = ? AND password = ?"; // 按顺序传入参数数组,框架会自动转义 $query = $this->db->query($sql, [$email, $password]); $result = $query->result();
风险提示:直接拼接变量到SQL语句的写法存在SQL注入漏洞,禁止在生产环境使用,示例如下:
// 错误示例,切勿使用 $sql = "SELECT * FROM `login` WHERE user_name='".$email."' AND password='".$password."'"; $query = $this->db->query($sql);
内容的提问来源于stack exchange,提问作者Sanjay Kushwah
相关产品推荐
相关产品推荐

