подготовленный параметризованный запрос с PDO

Новые для этого нового и безопасного способа обработки SQL в PHP и на основе MySql веб-приложений для защиты кода от SQL-инъекций. Я планирую начать использовать mysqli с PDO. Кто-нибудь может рассказать, как мне начать и продолжать.

Любая ссылка на любую статью также будет полезна.

Заранее спасибо.

Чтобы создать соединение

try { $db = new PDO("mysql:dbname=".DB_NAME.";host=".DB_HOST,DB_USER,DB_PWD); } catch (PDOException $e) { die("Database Connection Failed: " . $e->getMessage()); } 

Затем подготовить заявление

 $prep = $db->prepare("SELECT * FROM `users` WHERE userid = ':id'"); 

Как вы можете видеть, вы помечаете каждый параметр, который хотите, префикс любой строки с помощью:. Затем все, что вы делаете, это передать массив, сопоставляющий параметр (: id) со значением при выполнении.

 if (!$prep->execute(array(":id" => $userinput))) { $error = $prep->errorInfo(); echo "Error: {$error[2]}"; // element 2 has the string text of the error } else { while ($row = $prep->fetch(PDO::FETCH_ASSOC)) { // check the documentation for the other options here // do stuff, $row is an associative array, the keys are the field names } } 

Вместо PDO :: FETCH_ASSOC с функцией «выборки» существуют различные способы получения ваших данных. Вы можете использовать fetchAll, чтобы получить массив ВСЕХ результатов сразу, а не просто переходить по строкам. Или вы можете получить массив информации как 0-индексированный массив, или вы даже можете получить результаты непосредственно в экземпляр класса (если имена полей совпадают со свойствами класса).

Все документы PDO можно найти здесь: PHP.net PDO Manual