-4

我必须检索用户的历史记录,并且我有 4 个数据相互依赖的表。我可以使用循环检索数据,但我使用了“where IN ()”子句,并且将前一个查询的输出内爆.但是,如果我提供给“where IN()”的列表为空,则会返回错误。IN() 不能为空吗?

4

2 回答 2

1

您可以在开头添加一个空值,例如IN (0,your values here)

于 2012-08-17T18:21:39.867 回答
1

在为 IN 子句内爆数组时,我会做两件事之一

1:检查您是否甚至需要运行查询

if(!empty($some_array)) {
    //run mysql query
}
else {
   // if you need to do something if the array is empty, such as error or set some defaults, do it here
}

2:数组初始化程序中的一个值,它永远不会在数据库中(例如,如果我根据自动增量 id 进行选择,我使用零作为默认数组值来停止任何与空数据集有关的问题,因为零永远不会在我的 id 列中)。

$some_array = array(0);
于 2012-08-17T18:23:31.403 回答