Php 如何解决这个问题';对布尔值';错误?
我想从mysql中获取一些数据。我使用的是codeigniter模型和控制器 CI_model.php:Php 如何解决这个问题';对布尔值';错误?,php,codeigniter-3,Php,Codeigniter 3,我想从mysql中获取一些数据。我使用的是codeigniter模型和控制器 CI_model.php: public function getLastSale($id){ $q = $this->db->query("SELECT * from sma_sales desc limit 1 where customer_id = '$id' "); $result = $q->row(); $res = array();
public function getLastSale($id){
$q = $this->db->query("SELECT * from sma_sales desc limit 1 where customer_id = '$id' ");
$result = $q->row();
$res = array();
$res['id'] = $result->id;
$res['paid'] = $result->paid;
return $res;
}
CI_controller.php:
$getLastData = $this->pos_model->getLastSale($customer_id);
$sid = $getLastData['id'];
$prepaid = $getLastData['paid'];
但这一错误表明:
An uncaught Exception was encountered
Type: Error
Message: Call to a member function row() on boolean
我是codeigniter的初学者。我做错了什么?我认为问题在于查询:
SELECT * from sma_sales desc limit 1 where customer_id = '$id'
试着这样做:
SELECT * from sma_sales where customer_id = '$id' order by `sales_date` desc limit 1
您需要使用orderby
子句进行排序
另外,确保在将$id
包含在查询中之前将其转义。看一看
另一个建议是,您可以检查是否设置了
$result
。因为如果出现错误,它将返回NULL。请阅读更多信息。您收到的错误是因为您的$result=$q->row()
处理的是$db->query(…)
调用返回的错误
对布尔函数的方法的调用
我相信您的原始SQL中关于此部分的内容有错误。…sma\u sales desc limit…
在SMAU销售
和desc
之间需要某种ORDER BY
子句
您还应该检查返回的查询是否有效
if($q !== false)
{
$result = $q->row();
}
else
{
return false;
}
或者类似的