Добрый день. При запросе WHERE IN без использования массива ошибок не возникает. Стоит только использовать переменную вылетает call to a member function fetch_assoc() on a non-object. В $id_string я собираю строку из массива Собственно вот код: Код (Text): $input = array(1,2,3,4,5); $id_string = implode(',',$input); $myquery = $connect->query("SELECT * FROM table WHERE id IN ({$id_string})"); do { // Выполняем } while ($myquery_assoc = $connect->fetch_assoc($myquery)); Суть еще в том, что я могу вывести полученные данные. Но в конце всеравно получаю ошибку. Если же вместо {$id_string} руками ввести 1,2,3,4,5, то никаких ошибок не возникает. В чем может быть проблема? Заранее спасибо
Нельзя использовать do while при работе с базой данных, он не для этих целей нужен, больше пригоден для символических коллекций и итераций до начала цикла while. Почему вы не смотрите оф ресурс php.net, ведь для вас даже и перевод сделали на русский, старались, хоть и есть нюансы. Но - это оф ресурс и нужно доверять только ему. PHP: // ...... while ($myquery_assoc = $connect->fetch_assoc($myquery)) { // Выполняем }
В упор не пойму куда дальше копать, выводит все что мне нужно. Но в конце Fatal error: Call to a member function fetch_assoc() on a non-object --- Добавлено --- Разобрался. Решение было совсем в другом направлении
@Elemental в каком? Перед тем как пихать в метод что-то нужно было проверить что ты туда засовываешь и подходит ли оно для этого метода?
Именно "предохраниться" перед впихиванием в метод и нужно было. При запросе WHERE IN (), когда массив пустой, fetch_assoc выдает ошибку На данном этапе isset достаточно, так как базу наполняю только я. В будущем можно будет и регуляркой значения вытащить, предварительно избавившись от мусора в строке
@Elemental в жалобе будет отказано. Если тебе не нравится его формулировка - предложу свою. Попробуй головой думать, а не тупо жрать в неё. Так лучше? Тебе все советуют быть внимательнее и изучить небольшой объем материала. Если не осилишь - бросай нахрен программирование. Одна извилина и та прямая и не тянет кодинг. Путь такой будет диагноз. А если осилишь - поймешь как это на самом деле просто. Так что не надо тут на всяких высокомерных снобов жалобы катать. Сначала включи голову и подумай о реальном смысле сообщения, вместо придумывания оскорбления в твой адрес, траты сил на оскорбление этим оскорблением. Ну и так далее.
Единственным адекватным человеком оказался denis01. Спасибо ему за наводку на будущее. Впредь буду проверять все, что передаю методу