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
才能使调用的过程正常工作。