Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan pertanyaan berparameter php pdo
Dalam PHP, anda boleh menggunakan kaedah penyediaan untuk melaksanakan pertanyaan berparameter PDO Kaedah ini akan mengembalikan objek PDOStatement, menggunakan sintaks seperti "prepare('SELECT login_oid FROM log in WHERE user_id=...".
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP7.1, komputer Dell G3
Cara melaksanakan php pdo pertanyaan berparameter?
Pertanyaan berparameter PDO prepare() php menghalang suntikan SQL
Pertanyaan berparameter dalam PDO terutamanya menggunakan kaedah prepare(), dan kemudian kaedah ini akan mengembalikan objek PDOStatement, yang merupakan pernyataan SQL (tidak tahu bagaimana untuk menterjemah), pada masa ini pernyataan SQL hanya disusun, tetapi tidak dilaksanakan Selepas memanggil kaedah dalam PDOStatement, pernyataan SQL akan dilaksanakan, seperti dalam contoh berikut:
$sm = $db->prepare('SELECT login_oid FROM logined WHERE user_id=:user_id;'); $sm->bindValue(':user_id', $user_id, PDO::PARAM_INT); $sm -> execute();
Sebelum execute() dilaksanakan, anda boleh memanggil Kaedah bindValue() atau bindParam() menggantikan parameter yang anda nyatakan dalam pernyataan SQL yang disediakan sebelum ini Terdapat dua cara untuk menentukan parameter dalam pernyataan SQL: ' :name' dan '?'. Yang pertama digunakan dalam kod di atas Kaedah yang terakhir ialah:
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?;'); $sm->bindValue(1, $calories, PDO::PARAM_INT); $sm->execute();
bindValue() yang pertama menentukan parameter mana dalam pernyataan SQL untuk diganti, yang kedua menentukan nilai yang diganti, dan yang ketiga menentukan parameter mana dalam pernyataan SQL yang akan digantikan. Jenis nilai yang ditentukan, jenis surat-menyurat adalah seperti berikut:
PDO::PARAM_BOOLJenis Boolean
PDO::PARAM_NULLJenis NULL
PDO::PARAM_INTJenis integer
PDO::PARAM_STRJenis rentetan seperti CHAR, VARCHAR, rentetan
PDO::PARAM_LOBSumberkan objek besar, seperti fail, dll.
PDO::PARAM_STMTSaya tidak tahu
PDO::PARAM_INPUT_OUTPUTIni nampaknya Ia adalah jenis lanjutan yang tidak menyediakan jenis nombor sebenar, yang sangat mengejutkan Mari kita bercakap tentang kaedah execute() Ia juga boleh melakukan penggantian parameter, tetapi ia akan mengubah jenis semua nilai. seperti berikut
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?;'); $sm->execute(array($calories));Penggantian berbilang parameter adalah seperti berikut
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?, id < ?;'); $sm->execute(array($calories, $user_id));Pembelajaran yang disyorkan: "
Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pertanyaan berparameter php pdo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!