Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) MySQL Составление sql запроса

Составление sql запроса


     05.04.2014    MySQL    1348

вопрос
В общем есть у меня один граббер, но вот после обновления на новую версию двига он перестал работать. Выяснилось что проблема заключается в том что часть полей переехали в отдельную таблицу (_post_extras). Вроди как и не особая проблема создать отдельный запрос для них, но вот дело в том что граббер написан с использованием ООП и как я не пытался это сделать - вылазили одни ошибки.
Вот вся функция
Что я делал:
После
 $SQL = 'INSERT INTO '.PREFIX.'_post ('.implode(', ', array_keys($insert)).') VALUES (\''.implode('\', \'', array_values($insert)).'\')';

добавлял
    $row = $db->insert_id();
     $SQL = 'INSERT INTO ' . PREFIX . '_post_extras (news_id, allow_rate, news_read, rating, vote_num, votes) VALUES("'.$row.'",1,0,0,0,0)';

в итоге получил ошибки
Notice: Undefined variable: db on line 284

Fatal error: Call to a member function insert_id() on a non-object on line 284

В гугл прошу не направлять, я понял что одна переменная не определена, а функция не является обектом, но как это исправить не знаю. Или обясните как передать в переменную айди текущей новости в данной ситуации.

Ответа пока нет


Комментарии пользователей (10)

dj-avtosh
39

1479 | 390

dj-avtosh - 5 апреля 2014 00:30 - шашлычник

попробуй
$this->db

skype: elhan.isaev

shadow6630
6

131 | 55

shadow6630 - 5 апреля 2014 00:37 - Юзер

раньше уже пробовал вариант
$row = $this->$db->insert_id();

ошибки
Notice: Undefined variable: db on line 284

Fatal error: Cannot access empty property on line 284

dj-avtosh
39

1479 | 390

dj-avtosh - 5 апреля 2014 01:09 - шашлычник

покажи весь класс

skype: elhan.isaev

shadow6630
6

131 | 55

shadow6630 - 5 апреля 2014 01:42 - Юзер

вот весь класс http://pastebin.com/fBktjsym

dj-avtosh
39

1479 | 390

dj-avtosh - 5 апреля 2014 10:56 - шашлычник

Логично - тут работа со своей какой-то базой.$this->db &= $db; а в конструктор __construct ( $db ) посылать $db сам коннект. Либо использовать global $db;

skype: elhan.isaev

shadow6630
6

131 | 55

shadow6630 - 5 апреля 2014 13:06 - Юзер

Пробовал так
    global $db;
    $row = $db->insert_id();
     $SQL = 'INSERT INTO ' . PREFIX . '_post_extras (news_id, allow_rate, news_read, rating, vote_num, votes) VALUES("'.$row.'",1,0,0,0,0)';

на выходе
Warning: mysqli_insert_id() expects parameter 1 to be mysqli, boolean given in

shadow6630
6

131 | 55

shadow6630 - 5 апреля 2014 13:14 - Юзер

Я уже окончательно запутался с этим ООП, подскажите более конкретно (что и куда нужно вставить), а то я уже пол дня сижу над ним.

dj-avtosh
39

1479 | 390

dj-avtosh - 5 апреля 2014 13:28 - шашлычник

А есть ли инсерт над получением последнего id,если нет то: select max(id) и т.п.

skype: elhan.isaev

dj-avtosh
39

1479 | 390

dj-avtosh - 5 апреля 2014 13:32 - шашлычник

Ну и у query надо бы $db->query, а не $this-->db->query, если решили global юзать.

skype: elhan.isaev

shadow6630
6

131 | 55

shadow6630 - 6 апреля 2014 17:49 - Юзер

Огромное спасибо dj-avtosh за решение данного вопроса + ко всему он поправил работоспособность еще одного моего модуля!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы