Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan pertanyaan berparameter php pdo

Bagaimana untuk melaksanakan pertanyaan berparameter php pdo

藏色散人
藏色散人asal
2021-09-20 10:16:512099semak imbas

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=...".

Bagaimana untuk melaksanakan pertanyaan berparameter php pdo

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(&#39;SELECT * FROM fruit WHERE calories < ?;&#39;);
$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_BOOL
Jenis Boolean

PDO::PARAM_NULL
Jenis NULL

PDO::PARAM_INT
Jenis integer

PDO::PARAM_STR
Jenis rentetan seperti CHAR, VARCHAR, rentetan

PDO::PARAM_LOB
Sumberkan objek besar, seperti fail, dll.

PDO::PARAM_STMT
Saya tidak tahu

PDO::PARAM_INPUT_OUTPUT
Ini 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(&#39;SELECT * FROM fruit WHERE calories < ?;&#39;);
$sm->execute(array($calories));
Penggantian berbilang parameter adalah seperti berikut

$sm = $db->prepare(&#39;SELECT * FROM fruit WHERE calories < ?, id < ?;&#39;);
$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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn