Поскольку у вас есть простые целые числа можно просто сделать ...
$sql = "SELECT * FROM table WHERE comp_id IN (".implode(',',$arr).")";
(поскольку это продолжает появляться, некоторая дополнительная информация ...)
При работе со строками (в частности, ненадежный ), можно выполнить
$sql = "SELECT * FROM table WHERE comp_id IN
('".implode("','",array_map('mysql_real_escape_string', $arr))."')";
но не справляется со значениями типа NULL. И добавит кавычки вслепую вокруг числовых значений, что не работает, если используется строгий режим mysql. https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#idm140082377917056
... т.е. ТОЛЬКО используйте это, если вы действительно работаете со строками (например, VARCHAR), а НЕ с числовыми столбцами.
Нужно для вызова чего-то вроде mysql_real_escape_string
, чтобы любые кавычки в строках правильно обрабатывались! (а также предотвращение SQL-инъекций!)
... если вы хотите работать с номерами ненадежных , можете использовать intval
или floatval
$sql = "SELECT * FROM table WHERE comp_id IN (".implode(",",array_map('intval', $arr)).")";
для дезинфекции ввода. (без кавычек вокруг ввода.