Я читаю этот ответ: PHP - Using PDO with IN clause arrayОбъяснение PDO В статье, используя подготовленные заявления
Он использует код:
$in_array = array(1, 2, 3);
$in = str_repeat('?,', count($in_array) - 1) . '?';
$sql = "SELECT * FROM my_table WHERE my_value IN ($in)";
$stm = $db->prepare($sql);
$stm->execute($in_array);
$data = $stm->fetchAll();
Может кто-нибудь объяснить, почему они использовали
$in = str_repeat('?,', count($in_array) - 1) . '?';
вместо вып .:
$in = str_repeat('?,', count($in_array));
Я озадачен и не может понять логику задней - 1) . '?'
потому что он будет заканчиваться на 'IN (?,?,?,)' (См. Дополнительную запятую) – Federkun
Как @Federico говорит ... речь идет о этой конечной запятой. Для трех заполнителей нужны только две запятые. Это может быть '$ in = '?' , str_repeat (',?', count ($ in_array) - 1); ' – spencer7593