Форум → Разработка → Базы данных → Возможно ли "сохранение" mysqli::prepare?
Возможно ли "сохранение" mysqli::prepare?
-
Здравствуйте. Возможно ли 1 раз выполнить mysqli::prepare(<запрос>), каким-то образом сохранить результат (жалательно в mysql) и использовать его в различных скриптах, в которых не нужно будет заново делать mysqli::prepare(<запрос>), а можно будет сразу переходить к mysqli_stmt::bind_param?
То есть можно ли в mysql создать таблицу с подготовленными запросами, что бы вдальнейшем посылать только данные и id подготовленного запроса? -
-
22 февраля 2010 г. 2:47, спустя 43 минуты 38 секунд
[da_smag], вы предполагаете что мускуль за вас это не делает?Сапожник без сапог -
22 февраля 2010 г. 15:14, спустя 12 часов 27 минут 30 секунд
SpartakuS, я не знаю, как точно это называется.. но я хочу сделать так:
один раз создать подготовленное выражение, как-то сделать, что бы рнр его запомнило, а потом использовать его много раз и из разных скриптов без предварительной подготовки (то есть сразу mysqli_stmt::bind_param, а затем mysqli_stmt::execute)
Впринципе в mysql 5.1 можно сделать подготовленное выражение только sql запросом, но потом ему передавать данные с помощью mysqli::query, а что бы избавиться от sql-injection использовать mysqli::real_escape_string. А последнее загружает ЦП, в то время как mysqli_stmt::execute передаёт данные по-особому так, что данные проверки не требуют и в самой функции они не проходят эту проверку.
phpdude, ну вообще-то предполагаю.. Но я задал вопрос, что бы узнать, можно ли сделать так, как я описал выше =) -
22 февраля 2010 г. 15:53, спустя 39 минут 2 секунды
Наблюдение:
если создать подготовленное выражение средствами mysql, то естьPREPARE asdf FROM 'SELECT ? FROM tbl';
затем закрыть сессию, снова войти и попытаться выполнить это подготовленное выражение, то mysql выдаст ошибку:ERROR 1243 (HY000): Unknown prepared statement handler (asdf) given to EXECUTE
Так что, уважаемый phpdude, мускул этого не делает =) -
22 февраля 2010 г. 16:28, спустя 34 минуты 30 секунд
Чего-то непойму, в чем сакральный смысл сего действа? Ты пытаешься переложить кеширование с фс/мэмкеша на базу данных?… а что бы избавиться от sql-injection использовать mysqli::real_escape_string. А последнее загружает ЦП…
абасраца аргумент =)
И что, насколько сильно у тебя нагружает процессор эксейпирование строки по сравнению с выполнение запроса например?Work, buy, consume, die -
22 февраля 2010 г. 16:29, спустя 1 минуту
Так что, уважаемый phpdude, мускул этого не делает =)
я не это имел ввиду. а то, что препаре он не парсит каждый раз, а использует кеш. это раз
во вторых, ваш тест - более чем очевиден, зачем он вообще проводился? :)Сапожник без сапог
Пожалуйста, авторизуйтесь, чтобы написать комментарий!