1
Я пытаюсь использовать оператор LIKE для поиска по нескольким столбцам.PDO bindvalue не работает (WHERE LIKE statement)
Следующий код дает желаемый результат:
$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