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

Похож на Вас, должен получить доступ к ресурсу VS_VERSION_INFO; http://www.microsoft.com/msj/0498/c0498.aspx

7
задан pks83 19 August 2009 в 11:04
поделиться

1 ответ

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

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, чтобы получить массив ВСЕХ результатов сразу, а не просто идти строка за строкой. Или вы можете получить массив информации в виде массива с нулевым индексом, или вы даже можете получить результаты непосредственно в экземпляр класса (если имена полей совпадают со свойствами класса).

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

11
ответ дан 6 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: