Ini tergantung pada apakah Anda ingin mengembalikan baris yang nama atau kotanya sama persis dengan nilai penelusuran (=
), atau baris di mana bagian mana pun dari nama atau kota cocok dengan nilai pencarian (LIKE
).
Terlepas dari mana yang Anda butuhkan, Anda dapat memulai dengan mengubah string pencarian Anda menjadi array string seperti ini:
$strings = array_map('trim', explode(',', $searchString));
array_map('trim'...
memastikan bahwa Anda tidak mencoba mencocokkan spasi apa pun sebelum atau sesudah koma dalam string penelusuran yang dipisahkan koma.
Berikut adalah contoh cara mengeksekusi kueri Anda menggunakan pernyataan yang disiapkan di PDO. Pertama, kecocokan penuh menggunakan IN
:
$phs = rtrim(str_repeat('?,', count($strings)),',');
$stmt = $pdo->prepare("SELECT * FROM your_table WHERE name IN ($phs) OR city IN ($phs)");
// double the string values to us in both INs
$values = array_merge($strings, $strings);
$stmt->execute($values);
dan kecocokan sebagian menggunakan LIKE
:
$sql = '';
foreach ($strings as $string) {
$sql .= ' name LIKE ? OR city LIKE ? OR';
$values[] = $string;
$values[] = $string;
}
$stmt = $pdo->prepare('SELECT * FROM your_table WHERE' . rtrim($sql, ' OR'));
$stmt->execute($values);