1 (изменено: xarper, 2011-08-08 11:30:49)

Тема: Различный результат SQL-запроса в скрипте и в phpMyAdmin

Столкнулся с такой ситуацией.

Есть две таблицы (упрощенно): products (id, ...) и books (id, item, activity, ...).
item в таблице books соответствует id в products. id в обоих таблицах auto_increment и primary key.

Запрос:

SELECT * FROM products LEFT JOIN books ON products.id = books.item WHERE books.activity = '1' ORDER BY RAND() LIMIT 0,4;

Вот что интересно: запуская данный запрос в phpMyAdmin (вкладка SQL) я получаю корректный ответ, а вот запуск из php-скрипта возвращает и те записи, в которых activity равно 0.

Вопрос я решил, уточняя какие именно поля нужно вернуть (в моем случае достаточно получать только id):

SELECT products.id FROM ...

Но все же интересно, почему в скрипте запрос работает по-другому?

Все работает на локальной машине (Ubuntu 11.04) с единственной инcталяцией php (5.3.5) и mysql (5.1.54). phpMyAdmin версии 3.3.10.

2

Re: Различный результат SQL-запроса в скрипте и в phpMyAdmin

Не могу сказать почему так получается, но возможно была ошибка в строке SQL запроса выполняемая в PHP скрипте. Больше даже не знаю на что можно подумать.

3

Re: Различный результат SQL-запроса в скрипте и в phpMyAdmin

hanut а это не тот случай когда единицу в строке activity = '1' надо писать в косых кавычках ``?

4

Re: Различный результат SQL-запроса в скрипте и в phpMyAdmin

Artembolt сказал:

hanut а это не тот случай когда единицу в строке activity = '1' надо писать в косых кавычках ``?

Нет, целочисленные значения пишутся либо вообще без кавычек, либо как строка в двойных или одинарных кавычках, но никак не внутри косых кавычек.