Ответы пользователя по тегу Подготовленные выражения
  • Как в PDO заставить работать LIKE %var%?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для начала вы неправильно создали структуру базы данных. Скорее всего вместо этого списка нужно использовать отдельную таблицу связи. Представьте, что список будет 18,81, а вы захотите найти '%1%'.
    В остальном, LIKE должен работать. Вы уверены, что ни в одной другой строке это поле не содержит единицу?
    Ответ написан
    4 комментария
  • В чем смысл Prepared Statements MySQL если внешние данные идут в начале в запрос SET?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Таблица у вас удаляется не во время запроса EXECUTE, а уже в строке SET.
    Когда подготовленный запрос выполняется из клиента, то в MySQL передаётся не строка в кавычках, а бинарный блок, содержащий тип, длину и значение, подставляемые в плейсхолдер. таким образом прочитав байты, содержащие тип (строка) и длину (36 байт) сервер просто интерпретирует следующие 36 байт как строку главная'; DROP TABLE child;--. Сам запрос к этому времени уже скомпилирован и превращён в последовательность команд, переменные подставляются без анализа их содержимого, так что этот DROP сервер просто не воспримет как команду.
    Ответ написан
    Комментировать