2012-03-15 5 views
1

私はLIKE文を使用していくつかの列を検索しようとしています。PDOのbindvalueが機能しない(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

関連する問題