ФорумПрограммированиеPHP для идиотовРасширения PHP → Зачем нужны prepared statement в mysqli?

Зачем нужны prepared statement в mysqli?

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 26 февраля 2010 г. 1:56

    Вообщем-то компроментирующий вопрос, но всё же зачем нужны prepared statement в mysqli?
    Я понимаю еще в PDO, как в обёртке с эмуляцией и поддержкой на клиенте, но тут зачем? По моим подсчетам замедление работы в 1,5 раза будь то libmysql или mysqlnd, неполноценная поддержка всех операндов, безопасность, которую можно поддержать "стандартными" средствами, сводят такие возможности в одну большую ненужность. Хотя ресурс CPU и память не измерял…
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 26 февраля 2010 г. 8:53, спустя 6 часов 56 минут 54 секунды

    я сделал свои плейсхолдеры с блекджеками и шлюхами. Наподобие тех, что васяц в goDB реализовал. Те, которые идут в комплекте mysqli/PDO - неюзабельны
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 13:50, спустя 4 часа 56 минут 50 секунд


    я сделал свои плейсхолдеры с блекджеками и шлюхами. Наподобие тех, что васяц в goDB реализовал. Те, которые идут в комплекте mysqli/PDO - неюзабельны
    почему?
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 26 февраля 2010 г. 14:20, спустя 29 минут 32 секунды

    слишком много кода писать нужно для того, что бы учитывался тип подстановок.
    Спустя 35 сек.
    к примеру: int'ы не должны же обрамляться кавычками в strict-mode
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 14:59, спустя 39 минут 7 секунд


    слишком много кода писать нужно для того, что бы учитывался тип подстановок.
    Спустя 35 сек.
    к примеру: int'ы не должны же обрамляться кавычками в strict-mode
    мы филологи или программисты? переписать goDB под mysli prepared нет так уж и сложно, подстановки там уже есть с типами. зато будет ощутимый прирост скорости на повторяющихся запросах (если таковые есть конечно и если сделать кеширование препареда) и будет "как надо", без этого костыля -mysql_real_escape_string
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 26 февраля 2010 г. 15:23, спустя 23 минуты 46 секунд

    переписать goDB можно. В каком-то сверхвысоком увеличении быстродействия сомневаюсь. Переписывайте, делайте замеры
    Спустя 47 сек.
    если есть желание. Меня плейсхолдеры через mysqli_escape устраивают вполне
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 26 февраля 2010 г. 16:08, спустя 45 минут 50 секунд



    я сделал свои плейсхолдеры с блекджеками и шлюхами. Наподобие тех, что васяц в goDB реализовал. Те, которые идут в комплекте mysqli/PDO - неюзабельны
    почему?

    Потому что нельзя подставлять всё, что хочу + LIKE
    кстати у кого есть ситуации когда выполняются два запроса подряд?
    Спустя 78 сек.
    phpdude
    кеширование препареда
    кстати как это делать?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 16:31, спустя 22 минуты 37 секунд

    kostyl, руками
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 26 февраля 2010 г. 16:39, спустя 8 минут 16 секунд

    phpdude
    просто, что ты имеешь в виду под кешированием препареда, это акт mysqli->prepare() или какая-то штука с базой(настройка, специфический запрос или типа того) ?
    Еще немного по поводу костыля mysql_real_escape_string? Интересно сколько костылей можно написать для правильного юзанья prepared statement?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 16:48, спустя 8 минут 22 секунды

    kostyl, да, это половой акт, повторяющие ся препареды я уверен на 99.9999999% что база сама кеширует, нахуй одни и теже запросы парсить? имхо должна кешировать
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 26 февраля 2010 г. 16:53, спустя 5 минут 17 секунд

    повторяющиеся подряд она и кеширует, а вот насчет кешировать в разнобой я в доках не нашел, но на сторонних всяких блогах и т.п. видел что говорят, но опять же без ссылок.
    Тем более кешировать препеады надо хотя бы для разных соединений, а не для одного. Толку с одного нету если на 99,999999% вопросы в нём повторятся не будут.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 16:55, спустя 2 минуты 1 секунду

    Дофига чего база должна, но например mysql так и не умеет работать нормально с enum/set. Он только при сортировках с ней корректно работает
    http://bugs.mysql.com/bug.php?id=45300
    Спустя 34 сек.
    Я о том, что на одних догадках нельзя формулировать утверждение
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 17:33, спустя 38 минут 21 секунду


    Дофига чего база должна, но например mysql так и не умеет работать нормально с enum/set. Он только при сортировках с ней корректно работает
    http://bugs.mysql.com/bug.php?id=45300
    Спустя 34 сек.
    Я о том, что на одних догадках нельзя формулировать утверждение
    ну можно же жить с надеждой :)

    делать как правильно, может с ледующем билде они поправят/обавят эту фичу
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 17:36, спустя 2 минуты 25 секунд

    phpdude, ага, но я предпочитаю Юлю :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 февраля 2010 г. 17:54, спустя 18 минут 3 секунды

    прочитал про баг, это неочевидный баг на самом деле, а то что я предложил - очевидная фича)
    Спустя 27 сек.

    phpdude, ага, но я предпочитаю Юлю :)
    юля рядом?) а то помнишь, ту надеждочку, ммм м… ))))))))))
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!