2012-03-15 73 views
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),我真的不明白我做了什麼錯。

回答

4

當綁定變量時,請勿使用引號。

+0

嗯,那就修好了。 謝謝! – Boelensman1 2012-03-15 19:20:04