Результат запроса Mysqli отличается при вызове из PHP и при вызове из оболочки Mysql - PullRequest
0 голосов
/ 10 января 2019

Я искал ответы на этот вопрос, но ничего не могу найти в Интернете.

У меня возникли проблемы с запросом, который дает правильный набор результатов при запуске из оболочки mysql на компьютере, но другой при запуске из mysqli в сценарии PHP.

Запрос:

SELECT q.pos, q.event_ID, e.name FROM (SELECT @row_number:=CASE WHEN @event_ID=e_ID THEN @row_number+1 ELSE 1 END AS pos, @event_ID:=e_ID as event_ID, u_ID from event_queue ORDER BY e_ID, dateadded) AS q INNER JOIN event AS e ON q.event_ID = ID WHERE q.u_ID=11;

Если это вызывается из mysqli, тогда я получаю неправильное значение позиции (q.pos), равное 1, если запускается из оболочки mysql, то получаю правильное значение 4. Я думаю, это потому, что он использует переменную в код mysql, но я не могу найти в Интернете ничего, что описывает эту проблему.

Может ли кто-нибудь указать мне правильное направление?

Спасибо.

1 Ответ

0 голосов
/ 11 января 2019

Решение, которое работало для меня, состояло в том, чтобы просто удалить точку с запятой в конце первого SQL-запроса.

У меня было:

mysqli_query($dbcon,"SET @row_number=0;");

Я изменил его на:

mysqli_query($dbcon,"SET @row_number=0");

и это сработало. Мне также нужно было установить переменную @event_ID в другом запросе mysqli.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...