Есть подготовленный запрос вида: Код (Text): 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: $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, то он отрабатывается нормально. И, собственно, вопрос, можно ли увидеть, что получается после выполнения?
При попытке вызвать этот метод получаю сообщение об ошибке "Вызов неопределённого метода". У класса mysqli_stmt, который я использую нет такого метода.
@abejon, чёт глянул, тоже не нашёл. Но, теоритически, можно сделать обёртку (расширить этот класс и добавить свой метод, с составлением запроса, использовать http://secure.php.net/manual/ru/mysqli-stmt.attr-get.php), или глянуть в исходниках, как выполняется запрос, хранится ли он в объекте, если да, то в своём методе попробовать взять запрос, если нет, переопределить метод отправки запроса и в своём методе реализовать нужные фичи. В общем хз, любой вариант гемороен. Подожди, может кто чё нормальное подскажет