Prepared Statement - събирам мнения

  • Автор Автор cloxy
  • Начална дата Начална дата

cloxy

Super Moderator
Екип
Здравейте,

За връзка с базата данни използвам PDO под PHP. Типът на базата данни е SQLite или MySQL спрямо случая. И двете поддържат Prepared Statements.

Въпросът ми е добра практика ли е за всички заявки да се използва Prepared Statement, дори за малките такива, при които се извлича само един ред или дори едно поле?

Под PDO ескейпването против SQL Injection е малко бъгаво, в смисъл, слага кавички и около целия низ, което създава много проблеми. Лесно се коригира, но се замислих и за другия вариант.

Притесненията ми са по отношение на производителност. Знам, че при подобна предварителна подготовка на заявки се получава лек overhead. Затова питам добра практика ли е според вас навсякъде да се прави с PS?
 
Re: Prepared Statement - събирам мнения

Ммм ПДО-то си е слой отгоре, но е хубаво направено. Ползването на "подготвени заявки" иначе е добре да се ползва само когато има съмнителен инпут. Няма смисъл да се прекалява излишно, особено когато вадим нещо по айди примерно и кастваме към инт => винаги ще е число.. 😉
 
Re: Prepared Statement - събирам мнения

Примерно да се използва само по предназначение (еднотипни заявки) и когато ще се вкарва някаква променлива в заявката? Идеята ми е да избегна страндартното ескейпване с метода quote, че не му вярвам много, а и е бъгав, както вече казах.
 
Последно редактирано:
За: Prepared Statement - събирам мнения

За: Prepared Statement - събирам мнения

Подготвените заявки могат дори да увеличат чувствително скоростта, особено за заявка, която се ползва многократно. Защото при второто извикване се подава само id на заявка и стойността на променливите, без да се подава текста на заявката.
 
Re: Prepared Statement - събирам мнения

В крайна сметка реших да премина изцяло на Prepared Statement. Реално не се чувства забавяне, а спестява много проблеми. Дори като код е по-малко 😉 Благодаря на всички и тук за мненията. Получих и много добри доводи за използването на PS и от Facebook.
 

Back
Горе