Pengekalan Pembolehubah Berkedudukan dalam PDO di PHP
Anda boleh mengikat pembolehubah kepada pertanyaan satu persatu.
Ini dilakukan menggunakan kaedah bindValue.
Kemudian pertanyaan yang diperoleh dilaksanakan, tetapi
dalam kes ini, tiada apa-apa yang dihantar ke dalam execute.
Pengekalan sedemikian membolehkan anda menentukan jenis pembolehubah dengan tepat, membatalkan pembalutan automatik dalam tanda petik untuk nilai berangka. Mari kita lihat bagaimana ia dilakukan. Katakan kita mempunyai dua pembolehubah, jenis rentetan dan jenis nombor:
<?php
$name = 'name1';
$age = 25;
?>
Sediakan pertanyaan:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Sekarang ikat pembolehubah kepada pertanyaan dengan
menggunakan kaedah bindValue.
Dalam parameter pertama kaedah, dinyatakan
nombor kedudukan dalam pertanyaan, dalam parameter kedua
- nama pembolehubah,
dan dalam parameter ketiga dinyatakan jenis pembolehubah (berangka
atau rentetan):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Laksanakan pertanyaan:
<?php
$res->execute();
?>
Mari lihat hasilnya:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Diberi pembolehubah:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Dapatkan pengguna yang namanya sepadan dengan nilai satu atau dua pembolehubah.
Diberi pembolehubah:
<?php
$age1 = 21;
$age2 = 22;
?>
Dapatkan pengguna yang umurnya sepadan dengan nilai satu atau dua pembolehubah.