Shuriken
25.07.2014 - 16:07
Доброго времени суток!
Перевожу сайт с mysql на mysqli.
Есть такая конструкция:
function
{
$res = $mysqli->query ('<текст запроса>');
}
При выполнении получается ошибка Call to a member function query() on a non-object
Функция и запрос рабочие, т.к. работал на mysql. Я просто заменил mysql_query на $mysqli->query.
В чём может быть причина?
McLotos
25.07.2014 - 16:12
в mysqli немного другая логика =)
почитайте
http://php.net/manual/ru/mysqli.query.php
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Shuriken
25.07.2014 - 17:02
McLotos
Прочитал, но так и не понял в чём подвох.
McLotos
25.07.2014 - 17:26
Shuriken
=)
покажи какой запрос ты хочешь выполнить
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Shuriken
25.07.2014 - 17:44
McLotos$res = $mysqli->query ('select b.name, b.link, b.image, DATE_ADD(b.date, INTERVAL '.$GLOBALS['offset'].' hour) as date, m.isfinish
from `'.$GLOBALS['db_prefix'].'broadcast` b
left join `'.$GLOBALS['db_prefix'].'match` m on m.id = b.match_id
'.$where.'
order by b.date
'.$limit);
mysqli_query ('запрос') может так заработает? подозреваю, что просто неправильно вызвана функция.
Shuriken
25.07.2014 - 18:07
Цитата (Bolik @ 25.07.2014 - 15:45) |
mysqli_query ('запрос') может так заработает? подозреваю, что просто неправильно вызвана функция. |
Так точно не заработает, т.к. надо писать mysqli_query($link, 'запрос'). Я использую объектно-ориентированный стиль
посмотри везде ли ты используешь объектно-ориентированный стиль?
http://stackoverflow.com/questions/1743549...on-a-non-object см. здесь
Цитата |
INTERVAL '.$GLOBALS['offset']. |
SQL Injection попахивает
_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."
Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. ©
AllesKlar
Shuriken
25.07.2014 - 22:45
Цитата (vital @ 25.07.2014 - 17:46) |
Цитата | INTERVAL '.$GLOBALS['offset']. |
SQL Injection попахивает
|
Действительно. Спасибо, исправил.
Shuriken
29.07.2014 - 09:56
Вопрос ещё актуален
Shuriken
29.07.2014 - 11:32
Короче, всё оказалось банально просто: функция не видела объект mysqli, добавил
global $mysqli;
работает
Офигеть... Юзать объектный вариант и тут же global.
Тут надо либо крестик снять, либо трусы одеть.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Shuriken
29.07.2014 - 14:01
Цитата (twin @ 29.07.2014 - 10:25) |
Офигеть... Юзать объектный вариант и тут же global. Тут надо либо крестик снять, либо трусы одеть. |
а как надо?
Ну я же написал - либо крестик...
Ничего страшного нет в global, это сейчас адепты прибегут и начнут кричать, что global - зло. Они просто немножко слабы в коленках.
Но и использовать его, если юзаешь ООП стиль - как то пистопротивно. Тут нужно выбирать.
проблема как раз в заголовке:
Цитата |
Переход на с mysql на mysqli |
Не нужно никуда переходить. Ну или переходить на рассово верный процедурный стиль.
Тут посмотри.
А вот если начинаешь все заново, то выбирай. И тогда таких вопросов не возникнет. Там много способов. Синглетон,
наследование расширение и так далее. Но не стоит всё мешать в кучу. Порвут на колбасу.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.