Php codeigniter结果_阵列在实际服务器上不工作

Php codeigniter结果_阵列在实际服务器上不工作,php,mysql,sql,database,codeigniter,Php,Mysql,Sql,Database,Codeigniter,我正在使用一个数据库处理codeigniter项目,它在本地主机上运行得非常好,但是当我将它上传到真正的服务器上时,出现了很多问题 我真的做了很多搜索,但我找不到解决办法 当我从数据库检索数据并给出此错误时,result_array()函数不起作用。“致命错误:对第13行/home/mostafa/public_html/Sales/application/models/m_login.php中的非对象调用成员函数result()” 这是我的控制器代码 class c_login extend

我正在使用一个数据库处理codeigniter项目,它在本地主机上运行得非常好,但是当我将它上传到真正的服务器上时,出现了很多问题

我真的做了很多搜索,但我找不到解决办法

当我从数据库检索数据并给出此错误时,result_array()函数不起作用。
“致命错误:对第13行/home/mostafa/public_html/Sales/application/models/m_login.php中的非对象调用成员函数result()”

这是我的控制器代码

class c_login extends CI_Controller {
public function index() {
    $this->load->view('login');
}

public function signin(){
    $username = $this->input->post('username');
    $password = $this->input->post('password');

    $this->load->model('m_login');
    $user = $this->m_login->signin($username, $password);

    if(!$user){
        echo "<script>alert('Your Username Or Password is Incorrect');</script>";
    }else{

        //set session
        $userData = array(
            'id' => $user[0]['id'],
            'name'  => $user[0]['name'],
            'admin' => $user[0]['admin']
        );

        $this->session->set_userdata($userData);

        if ($user[0]['admin'] == 1) {
            redirect('c_home_admin');
        }else{
            redirect('c_home_user');
        }
    }
}
这是database.php配置:

$active_group = 'default';

$active_record = TRUE;

$db['default']['hostname'] = 'localhost';

$db['default']['username'] = 'root';

$db['default']['password'] = '**********';

$db['default']['database'] = 'mydb';

$db['default']['dbdriver'] = 'mysql';

$db['default']['dbprefix'] = '';

$db['default']['pconnect'] = TRUE;

$db['default']['db_debug'] = TRUE;

$db['default']['cache_on'] = FALSE;

$db['default']['cachedir'] = '';

$db['default']['char_set'] = 'utf8';

$db['default']['dbcollat'] = 'utf8_general_ci';

$db['default']['swap_pre'] = '';

$db['default']['autoinit'] = TRUE;

$db['default']['stricton'] = FALSE;

提前感谢

我要检查的第一件事是,您的数据库模式在开发时是否与在live上完全相同。如果表不相同(例如缺少字段),则会出现该错误

编辑

尝试按如下方式重写SQL查询:

$sql = "
    SELECT * FROM `users` where `username` = ? AND `password` = ?
";
$q = $this->db->query($sql, array($username, $password));
return $q->result_array();

(抱歉-在我的回答中贴在这里,因为评论看起来不可靠…

我曾经遇到过类似于此的AR奇怪问题,我一直无法确定(即使如此)。我解决了手工编写查询并使用
$this->db->query()
而不是使用活动记录构建查询的问题。试试看(记录在案)@DamienPirsy。。。我尝试手动编写查询,并使用var_dump()获取数据。。但是我得到了bool(false)作为输出!!!:((我认为active record类在本地到服务器的所有php版本中都不起作用?你能把
$this->db->last_query()
放在
$query=$this->db->get()下面吗?);
在phpMyAdmin或某个数据库工具上手动尝试该查询,看看是否会提取任何信息?当您在管理工具(如phpMyAdmin?@Kabus Myburgh)中运行该查询时会发生什么情况。我用两个数据库的不同名称复制并粘贴了SQL代码,但它不起作用(如果我理解您的意思的话)什么都没有发生…如果我得到数据,它将什么也不返回,如果我插入了数据,请将数据库模式与一些示例数据一起发布到您的live server上?…此链接用于我的数据库模式,例如,我想插入一个用户
$sql = "
    SELECT * FROM `users` where `username` = ? AND `password` = ?
";
$q = $this->db->query($sql, array($username, $password));
return $q->result_array();