2015-02-20 4 views
-1

С PHP5 и с удалением mysql_query (RIP.) Я довольно смущен тем, что наиболее эффективный способ запуска запроса. Поскольку существует несколько способов.Самый эффективный способ запуска запроса

Варианты, которые я знаю, таковы:

Вариант 1:

$getInfo = "SELECT * FROM app2 WHERE id='". $appID ."' "; 
$oStmt = $dbportal->prepare($getInfo); 
$oStmt = $dbportal->execute(); 

Я считаю, что это PDO.

Вариант 2:

$createQuery="INSERT INTO usr2 SET login='". $user ."', role='". $role ."'"; 
$dbportal->query($createQuery); 

своего рода PDOish?

Был бы кто-то настолько любезен, чтобы подтолкнуть меня в правильном направлении? Ссылка тоже хорошая, ничего не нашел

OfficialBAMM. \ О/

+4

Это невероятно ужасные способы запуска запросов, поскольку вы все еще используете строчную интерполяцию, которая так же уязвима, как и mysql_query. Пройдите это, и вы найдете гораздо лучшие способы http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?s=1|22.9210 –

+0

@Hanky, спасибо. Неотредактированный ответ был не очень полезен. < – OfficialBAMM

ответ

2

Чтобы предотвратить инъекции SQL, вы должны использовать подготовленные заявления с заполнителями:

$getInfo = "SELECT * FROM app2 WHERE id = :id"; 
$oStmt = $dbportal->prepare($getInfo); 
$oStmt->execute(array(':id' => $appID)); 

Эффективность не должна быть проблемой, пока вы не получите правильный код. Преждевременная оптимизация - это корень всего зла. И медленная часть выполнения запроса к базе данных - это доступ к данным, а не так, как вы ее называете.

+0

Я не уверен, что означает PO под словом «эффективный»? Быстрейший? Но подготовленные операторы почти так же быстро, как и примитивные вызовы 'query()'. Потому что вам все равно придется избегать подозрительных переменных. – user4035

+3

Кого волнует, что он имеет в виду? Узкое место почти наверняка будет в поиске базы данных, а не в форме запроса. – Barmar

+0

@barmar, если у меня есть запрос без ввода пользователем, нормально ли использовать PDO? – OfficialBAMM

Смежные вопросы