我有一个名为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 ();
有没有人有什么建议?我应该如何将数组转换为可以注入IN子句的sql?替换NULL将不起作用.
Null是唯一可以保证不在集合中的值.怎么不是一个选择?任何其他东西都可以被视为潜在集合的一部分,它们都是价值观.