Я подумываю переписать какое-нибудь приложение с открытым исходным кодом для моих целей на PDO и транзакции с использованием InnoDB (сейчас mysql_query и MyISAM).
Мой вопрос: в каких случаях разумно использовать подготовленные операторы?
Потому что везде, где я читаю, утверждается (даже во многих сообщениях здесь), что я должен использовать подготовленные операторы каждый раз и везде из-за 1. безопасности и 2. производительности. Даже руководство по PHP рекомендует использовать подготовленные операторы и не упоминать об экранировании.
Вы не можете отрицать механизм безопасности. Но, думая об этом снова и снова, приходит на ум, что каждый раз нужно готовить оператор, а затем использовать его один раз... Это не имеет смысла. Хотя приходится вставлять 1000 раз некоторые переменные в один оператор, это имеет смысл, но это очевидно. Но это не то, на чем строится обычный интернет-магазин или доска объявлений.
Так как же это преодолеть? Могу ли я подготовить свои заявления для всего приложения и назвать их конкретно? Могу ли я подготовить несколько разных заявлений и использовать их по имени? Потому что это единственное разумное решение, о котором я думаю (кроме 1000x).
Я обнаружил, что есть mysql_real_escape с именем $pdo->quote, а также для целей одиночного запроса. Почему бы не использовать это? Зачем заморачиваться с подготовкой?
А что вы думаете об этой прекрасной статье? http://блог.ulf-wendel.de/2008/pdo_mysqlnd-prepared-statements-again/
Согласны ли вы с накладными расходами, связанными с подготовкой операторов?
Спасибо