PDO ile hazırlanan parametreli sorgu

1 Cevap php

SQL enjeksiyonu kodu güvenli, PHP ve MySQL tabanlı web tabanlı bir uygulama SQL bulunuyor işleme bu yeni ve güvenli bir şekilde yeni. Ben PDO ile mysqli kullanmaya başlamak için planlıyorum. Herkes i başlamak nasıl anahat ve devam lütfen.

Herhangi bir madde herhangi bir referans da yararlı olacaktır.

Şimdiden teşekkürler.

1 Cevap

Bağlantısı oluşturmak için

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

Sonra bir bildiri hazırlamak için

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

Gördüğünüz gibi, size herhangi bir dize önek istediğiniz her parametre etiket ':'. Eğer yürütmek değeri: (id) Daha sonra yapmanız tüm parametre haritalama bir dizi geçmektedir.

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
   }
}

Bunun yerine "getir" fonksiyonu ile PDO :: FETCH_ASSOC arasında veri almak için çeşitli yolları vardır. Bunun yerine sadece satır satır gidiyor seferde TÜM sonuçlarının bir dizisini almak için fetchAll kullanabilirsiniz. Yoksa 0-dizinlenmiş dizi gibi bilgi dizi alabilirsiniz, ya da hatta bir sınıf örneğine doğrudan sonuçlar getirebilir (alan adları sınıfının özellikleri ile hizaya eğer.)

PDO tüm belgeler burada bulunabilir: PHP.net PDO Manual