Posisi Binding Variabel di PDO PHP
Variabel dapat di-binding ke query satu per satu.
Ini dilakukan dengan metode bindValue.
Kemudian query yang dihasilkan dijalankan, tetapi
dalam hal ini tidak ada yang diteruskan ke execute.
Binding semacam ini memungkinkan untuk menentukan secara tepat tipe variabel, meniadakan pembungkusan otomatis dalam tanda kutip untuk nilai numerik. Mari kita lihat bagaimana hal ini dilakukan. Misalkan kita memiliki dua variabel, bertipe string dan numerik:
<?php
$name = 'name1';
$age = 25;
?>
Siapkan query:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Sekarang binding variabel ke query dengan
menggunakan metode bindValue.
Pada parameter pertama metode ditentukan
nomor posisi dalam query, pada parameter kedua
- nama variabel,
dan pada parameter ketiga ditentukan tipe variabel (numerik
atau string):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Jalankan query:
<?php
$res->execute();
?>
Lihat hasilnya:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Diberikan variabel:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Dapatkan pengguna yang namanya cocok dengan nilai variabel pertama atau kedua.
Diberikan variabel:
<?php
$age1 = 21;
$age2 = 22;
?>
Dapatkan pengguna yang usianya cocok dengan nilai variabel pertama atau kedua.