Php 对非对象上的成员函数num_rows()的Codeigniter调用

Php 对非对象上的成员函数num_rows()的Codeigniter调用,php,mysql,codeigniter,Php,Mysql,Codeigniter,模型文件中的函数: function get_user_by_email($email) { //$this->consumer->where('email=', strtolower($email)); //$query = $this->consumer->get($this->table_name); $query = $this->db->query('CALL get_user_by_email("'.strtolo

模型文件中的函数:

function get_user_by_email($email)
{
    //$this->consumer->where('email=', strtolower($email));
    //$query = $this->consumer->get($this->table_name); 

    $query = $this->db->query('CALL get_user_by_email("'.strtolower($email).'")');
    echo $query->num_rows();
}
此函数返回对中非对象的成员函数num_rows()的错误
调用,而同一文件中的其他函数返回行计数。还尝试了活动记录查询。但是查询也返回相同的错误

我也尝试过使用
result(),result\u array()
。但每件事都给我错误

谢谢

试试看

$email = strtolower($email);    
$query = $this->db->query("CALL get_user_by_email('$email')");
if(is_object($query)){
    echo $query->num_rows();
}else{
    echo "Query Failed";
}
您可能需要将
$email
括在大括号中,以确定其计算结果

$query = $this->db->query("CALL get_user_by_email('{$email}')");

我使用了
$this->db->reconnect()
在调用存储过程之前重新连接到数据库。这解决了问题

var\u dump($query)
开始如果您执行var\u dump,您将发现$query是一个布尔值。看起来你的查询语法对我来说很糟糕。我试过var_dump($query)。它返回bool(false)。因为我不想使用直接查询,所以我使用了存储过程。当我打印查询时,它给出了正确的结果。我不是刚刚预测到吗?
query()
返回bool,因为调用的过程失败了。可能程序定义不正确?请共享存储过程代码。您使用的是mySQL还是其他数据库?如果使用mySQL,您使用的是什么驱动程序。我相信您必须使用
mysqli
才能使调用的过程正常工作。