У меня есть функция, которую я использую, называется sqlf (), она эмулирует подготовленные операторы. Например, я могу делать такие вещи, как:
$sql = sqlf("SELECT * FROM Users WHERE name= :1 AND email= :2",'Big "John"','bj@example.com') ;
По разным причинам я не могу использовать подготовленные заявления, но я хотел бы подражать им. Проблема, с которой я сталкиваюсь, связана с такими запросами, как
$sql = sqlf("SELECT * FROM Users WHERE id IN (:1)",array(1,2,3) );
Мой код работает, но он не работает с пустыми массивами, например следующее выдает ошибку MySQL:
SELECT * FROM Users WHERE id IN ();
У кого-нибудь есть предложения? Как мне перевести и очистить массив в sql, который может быть вставлен в предложение IN? Подстановка NULL не сработает.