powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли увидеть строку подготовленного запроса после привязки данных?
11 сообщений из 11, страница 1 из 1
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443203
Abejon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть подготовленный запрос вида:

Код: sql
1.
2.
3.
4.
5.
SELECT c1, c2, c3 
FROM my_tbl
WHERE
c1 = CASE WHEN @iVal1 = -1 THEN c1 ELSE @iVal1 END
AND c2 LIKE CASE WHEN sVal2 IS NULL THEN c2 ELSE @sVal2 END



Если ничего передаю в запрос -1 и NULL соответственно, то получаю выборку всех значений таблицы. Если же передаю какие-то значения из существующих в таблице, то возвращается пустая выборка. Поэтому хотелось бы увидеть, какая строка получается после привязки параметров.

На php это выглядит вот так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$query = "SELECT c1, c2, c3 "
."FROM my_tbl "
."WHERE "
."c1 = CASE WHEN ? = -1 THEN c1 ELSE ? END"
."AND c2 LIKE CASE WHEN ? IS NULL THEN c2 ELSE ? END"
$stmt = $mysqli->prepare($query);
$stmt->bind_param("is"
        , $iVal1, $iVal1
        , $sVal2, $sVal2
);



Если запрос с соответствующими значениями вставить в phpMyAdmin, то он отрабатывается нормально.
И, собственно, вопрос, можно ли увидеть, что получается после выполнения?
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443210
Abejon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли увидеть, что получается после выполнения $stmt->bind_param?
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443255
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbejonЕсли же передаю какие-то значения из существующих в таблице, то возвращается пустая выборка.Не знаю, какой тип у полей с1 и с2, но вот то, что во втором CASE параметр НЕОБХОДИМО обрамить кавычками - это стопудово. В противном случае LIKE там непонятно чем занимается...
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443297
Abejon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пробовал "закавычить"- теряется знак вопроса, и возникает ошибка несоответствия числа параметров.
Кроме того, даже если я задаю только первый паарметр - целое число - то всё равно запрос возвращается пустой.
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443305
Abejon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, и потом, я ведь на NULL проверяю? а если закавычу, то будет уже не NULL, а 'NULL'.
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443306
Abejon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, а кавычки должны автоматом подставляться в момент привязки.
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443346
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда ищите запрос в том виде, в каком он попал серверу, в General Log...
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39443655
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abejon
Код: sql
1.
AND c2 LIKE CASE WHEN sVal2 IS NULL THEN c2 ELSE @sVal2 END

Обычно это пишется так:
Код: sql
1.
AND (@sVal2 IS NULL OR c2 LIKE @sVal2)



Проверить результат выражений проще всего добавляя нужные фрагменты в секцию SELECT.
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39444186
Abejon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, что-то не могу я найти этот файл. Уже включил его специально. Но не вижу. Где он лежать должен?
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39444191
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SHOW VARIABLES LIKE "general_log%";
...
Рейтинг: 0 / 0
Можно ли увидеть строку подготовленного запроса после привязки данных?
    #39444619
Abejon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, спасибо, большое! Нашёл.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли увидеть строку подготовленного запроса после привязки данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]