Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Почему sql-запрос выдает ошибку?


Recommended Posts

Здравствуйте! Пишу модуль связи администратора и пользователя, сообщения сохраняются в БД. Сейчас решил добавить пагинацию к ним, написал вот такой запрос к БД: 
 

public function getAllMessages($data) {

$sql = $this->db->query("SELECT * FROM " . DB_PREFIX . "message WHERE status = 1 ORDER BY date_added DESC");

if (isset($data['start']) && isset($data['limit'])) {
if ($data['start'] < 0) {
$data['start'] = 0;
}

if ($data['limit'] < 1) {
$data['limit'] = 10;
} 

$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
} 

$query = $this->db->query($sql);

return $query->rows;
} 

но ругается на неправильно составленный запрос:

Unknown: Object of class stdClass could not be converted to string in /catalog/model/contact/message.php on line 28
Notice: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0,10' at line 1
Error No: 1064 LIMIT 0,10 in /system/library/db/mysqli.php on line 40
Notice: Trying to get property of non-object in /catalog/model/contact/message.php on line 33

Не могу понять, в чем может быть проблема?

Змінено користувачем reeditor
Надіслати
Поділитися на інших сайтах


у вас ошибка:

$sql = $this->db->query("SELECT * FROM " . DB_PREFIX . "message WHERE status = 1 ORDER BY date_added DESC");

...

$query = $this->db->query($sql);

первый раз не нужно делать $this->db->query();

замените сначала на

$sql = "SELECT * FROM " . DB_PREFIX . "message WHERE status = 1 ORDER BY date_added DESC";

  • +1 1
Надіслати
Поділитися на інших сайтах

Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.