【发布时间】:2019-08-09 14:04:57
【问题描述】:
我正在尝试使用 Codeigniter 创建一个登录页面,我需要使用 ODBC 连接从 MS SQL 数据库收集数据,但我收到以下错误:
调用未定义的方法 CI_DB_odbc_driver::select()。
为什么会发生这种情况,我该如何解决?这是我第一次使用 CI 查询生成器连接到 ODBC MS SQL 数据库
型号
class Utilizador_model extends CI_Model {
public function login($username,$password){
$this->db->select('*');
$this->db->from('utilizadores');
$this->db->where('username', $username);
$this->db->where('password', $password);
$q = $this->db->get();
if ($q->num_rows() > 0) {
return $q->result_array();
}else{
return false;
}
}
我尝试过这样的事情:
$query = $this->db->query('SELECT * from utilizadores where username = "'.$username.'" AND password ='.$password);
$resultado = $query->result_array();
return $resultado;
但我收到以下错误:
消息:odbc_exec():SQL 错误:[Microsoft][ODBC SQL Server 驱动程序][SQL Server]列名“F”无效,SQL 状态 S0022 在 SQLExecDirect
'F' 是我在输入中输入的内容
【问题讨论】:
-
我在调用函数之前已经完成了,我只需要知道如何从数据库中获取信息
-
这甚至不是这篇文章的重点
-
嘿@mario,我知道这不是您要的,但是您看起来好像是在要求使用该(第二个示例)代码进行sql注入攻击。 (您可能正在对自己进行实际上不起作用的 sql 注入攻击)关于您的问题,请检查您如何引用您的 sql。我相信这些值没有被正确引用,所以 sql server 认为你正在尝试比较两个字段而不是一个字段与一个字符串。不过,请再次考虑如何执行此操作并使用正确的 sql 插值,而不是连接包含用户输入的字符串。
-
模型代码在这方面看起来更好。 (来自我上面的评论)
-
在将值发送到模型之前,我在控制器上的每个变量中使用了 addlashes()。这足以防止sql注入吗?
标签: php sql-server codeigniter odbc