Как исправить ошибку «Вызов функции-члена row () при логической ошибке»? - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу получить некоторые данные из 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();
    $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

Я начинающий программист.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Ошибка, которую вы получаете, заключается в том, что ваш $result = $q->row() действует на ЛОЖНЫЙ возврат из вызова $db->query(...).

Вызов метода в логическом

Я полагаю, что в вашем исходном SQL есть ошибка в этом разделе ...sma_sales desc limit...

Вам нужен какой-то ORDER BY оператор между sma_sales и desc.

Вы должнытакже убедитесь, что ваш возвращенный запрос действителен ..

if($q !== false)
{
    $result = $q->row();
}
else
{
    return false;
}

или что-то в этом роде

0 голосов
/ 10 февраля 2019

Я думаю, что проблема в запросе:

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

Вам нужно использовать предложение ORDER BY для сортировки.

Кроме того, убедитесь, что вы экранировали $id, прежде чем включать его в запрос.Взгляните на this .

Другое предложение заключается в том, что вы можете проверить, установлен или нет $result.Потому что в случае ошибок возвращается NULL.Подробнее об этом здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...