1
我試圖使用LIKE語句來搜索多個列。PDO綁定值不起作用(WHERE LIKE語句)
下面的代碼提供想要的結果:
$zoek='%'.$_GET['zoek'].'%';
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
//insert the user:
$sql = "SELECT `leerlingnr`,`voornaam`,`achternm_tsnvoegsels`,`klas`
FROM `roosters`
WHERE `leerlingnr` LIKE '$zoek'
OR `voornaam` LIKE '$zoek'
OR `achternm_tsnvoegsels` LIKE '$zoek'
OR `klas` LIKE '$zoek'";
$st = $conn->prepare ($sql);
$st->execute();
var_dump ($st -> fetchAll ()) ;
$conn = null;//sluit de connectie
然而,當我嘗試將$zoek
值綁定,而不是僅僅將其插入查詢,我得到0的結果。
$zoek='%'.$_GET['zoek'].'%';
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
//insert the user:
$sql = "SELECT `leerlingnr`,`voornaam`,`achternm_tsnvoegsels`,`klas`
FROM `roosters`
WHERE `leerlingnr` LIKE ':zoekterm1'
OR `voornaam` LIKE ':zoekterm2'
OR `achternm_tsnvoegsels` LIKE ':zoekterm3'
OR `klas` LIKE ':zoekterm4'";
$st = $conn->prepare ($sql);
$st->bindValue(':zoekterm1', $zoek, PDO::PARAM_STR);
$st->bindValue(':zoekterm2', $zoek, PDO::PARAM_STR);
$st->bindValue(':zoekterm3', $zoek, PDO::PARAM_STR);
$st->bindValue(':zoekterm4', $zoek, PDO::PARAM_STR);
$st->execute();
var_dump ($st -> fetchAll ()) ;
$conn = null;//sluit de connectie
嘗試了約半小時後(我固定在查詢中有%和只有一個:zoekterm
),我真的不明白我做了什麼錯。
嗯,那就修好了。 謝謝! – Boelensman1 2012-03-15 19:20:04