Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Подскажите, лучше использовать mysqli::prepare или обычный mysqli::query?
И как я понимаю используя mysqli::prepare уже не нужно экранировать данные, пришедшие от пользователя или все-таки лучше перестраховаться?
OrmaJever
Отправлено: 10 Июня, 2013 - 22:01:52
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
лично я mysqli::prepare использую в основном для insert'a и update'a, а селект лучше обычным query. Хотя для кого как.
Да, в prepare не нужно экранизировать, просто передаёте параметры в bind_param и запрос будет безопастным.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Vaio
Отправлено: 10 Июня, 2013 - 22:05:36
Гость
Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Хочется уже использовать что-то одно, или все через prepare или через query. Я так понимаю вы используете для select`а query из-за проблем со скоростью работы prepare?
OrmaJever
Отправлено: 10 Июня, 2013 - 22:25:38
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Vaio пишет:
Хочется уже использовать что-то одно, или все через prepare или через query.
Нет, так врядли получится. Нужно знать зачем нужно то и то, и использовать в нужных местах. Использовать что-то одно конечно можно, но лучше писать так как будет понятнее и короче. В общем всё на вашей совести.
Vaio пишет:
Я так понимаю вы используете для select`а query из-за проблем со скоростью работы prepare?
Нет, я об этом никогда не задумывался, я даже не знаю выполняется ли prepare дольше, и если да то насколько.
Хотел написать "Выбирая php можно не заморачиватся над скоростью выполнения", но это наверное не верно, всётаки сам частенько за неё борюсь, но только не в убыток читаемости кода.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
esterio
Отправлено: 10 Июня, 2013 - 22:27:46
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
делал тесты лично. Вывод prepare хоть и мендленей, но разница настолько мала, что беспокоится о скорости не стоит.
Vaio
Отправлено: 10 Июня, 2013 - 22:46:29
Гость
Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Все прелести prepare заключаются в безопасности?
Я в основном использую выборку через select и почти всегда по (int)$id, что в этом случае лучше использовать?
OrmaJever
Отправлено: 10 Июня, 2013 - 22:58:40
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Vaio пишет:
Я в основном использую выборку через select и почти всегда по (int)$id, что в этом случае лучше использовать?
Ну я же вам про это и говорил, при выборке в основном используется 1-2 переменые (параметры для условия), которые особо код не загромождают, но при добавлении приходится перечислять много полей и из-за этого запрос становится сложночитаем.
А ещё кстате говоря Prepare хорошо использовать для нескольких запросов в цикле, Реальный пример из кода
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.