Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Почему не работает запрос?
$query="SELECT * FROM emails WHERE CustomerId = '{$userId }' AND WidgetId = '{$widgetId}'";
$result=$mysqli->query($query)
or die("Ошибка при загрузке настроек пользователя. Описание ошибки: ".$mysqli->error);
echo'Выбрано строк: '.$mysqli->num_rows;
В чём может быть дело?
Sail
Отправлено: 04 Сентября, 2016 - 12:07:25
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
maxapet пишет:
Этот же запрос через phpMyAdmin выбирает необходимые записи
echo $query;
И сравнивайте с тем, что ручками выполняете.
maxapet
Отправлено: 04 Сентября, 2016 - 12:14:01
Новичок
Покинул форум
Сообщений всего: 13
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
Я так и сделал. Подставил запрос в phpMyAdmin, и он отработал нормально.
Fart
Отправлено: 04 Сентября, 2016 - 13:34:10
Посетитель
Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016
Помог: 10 раз(а)
'{$userId }'
для чего вообще фигурные скобки и нужны ли они повторно?
данные записаны в бд такого вида?
{{...}}
или
{...}
и пробел разве нужен при поиске id?
maxapet
Отправлено: 04 Сентября, 2016 - 13:51:10
Новичок
Покинул форум
Сообщений всего: 13
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
Внешние фигурные скобки нужны, чтобы вставить значение переменной в строку, в внутренние - в таком виде guid генерится. В БД guid хранится с фигурными скобками.
А про пробел я не понял - в каком месте он лишний?
OrmaJever
Отправлено: 04 Сентября, 2016 - 14:05:23
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
maxapet пишет:
а запрос возвращает 0 записей
maxapet пишет:
В чём может быть дело?
Побуду капитаном очевидностью, причина может быть одна - в таблице нет записей удовлетворяющих данное условие.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
maxapet
Отправлено: 04 Сентября, 2016 - 17:20:34
Новичок
Покинул форум
Сообщений всего: 13
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
OrmaJever пишет:
Побуду капитаном очевидностью, причина может быть одна - в таблице нет записей удовлетворяющих данное условие.
Я ведь написал: один и тот же запрос. Я вывожу строку запроса через echo, копирую строку запроса, и вставляю её в phpMyAdmin. В phphMyAdmin запрос возвращает строки, со страницы сайта - нет.
Fart
Отправлено: 04 Сентября, 2016 - 18:14:18
Посетитель
Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016
Помог: 10 раз(а)
Покажи строчку запроса mysql после вывода результата введенного в phpmyadmin (Добавление)
А пробел существует и он учитывается. в примере:
твоем
Если пробел не причем и у тебя есть согласно примеру данные, значит по любому вывод нулевой в запросе и записей нет
Попробовал такой запрос: SHOW TABLES - в phpMyAdmin отработал нормально, а со страницы сайта опять ничего не вернул.
Sail
Отправлено: 05 Сентября, 2016 - 09:20:36
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
maxapet пишет:
Т.е.получается, что $mysqli->num_rows содержит пустое значение
Проверьте свой error_reporting. И display_errors заодно. Здесь E_NOTICE, который вы, судя по всему, не видите. А неизвестная переменная или свойство объекта - кидает E_NOTICE и представляется NULL, NULL после приведения к строке - пустая строка ''.
----- PostgreSQL DBA
maxapet
Отправлено: 06 Сентября, 2016 - 17:26:04
Новичок
Покинул форум
Сообщений всего: 13
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
Sail пишет:
maxapet пишет:
Т.е.получается, что $mysqli->num_rows содержит пустое значение
Проверьте свой error_reporting. И display_errors заодно. Здесь E_NOTICE, который вы, судя по всему, не видите. А неизвестная переменная или свойство объекта - кидает E_NOTICE и представляется NULL, NULL после приведения к строке - пустая строка ''.
Спасибо, действительно, у меня "смещались в кучу кони, люди...". Я смешал функциональный и объектно-ориентированный подходы. Если использовать $mysqli->affected_rows, то всё работает.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.