WHERE column_name IN Array()返回空数组

时间:2016-02-21 10:04:06

标签: php mysql arrays mysqli

所以我试图查询一个接近1000条记录的数据库表,并且我试图从表($ subject)中获取行,基于某个列(主题)值是否属于一个特定的数组($ topics)。

所以我的功能看起来像这样。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^forums\.resistance\.tk  [NC]
RewriteRule ^(.*) https://www.libertaire.net/$1 [L,R=301]

我有一个处理所有查询和转义函数的数据库类,它使用mysqli。 当我的$ object_array返回到调用此方法的类时,它是空的。 我试图从while循环中回显每个$行并且它工作但是在退出while循环时,$ object_array没有给出任何甚至不是'[]'的东西。 我认为这与'WHERE topic IN array'部分有关,因为其他查询在此方法上运行正常。

2 个答案:

答案 0 :(得分:0)

while循环中,更改

$row = $database->fetch_array($result_set)

$row = $result_set->fetch_array()

$database是一个mysqli对象实例,而您需要mysqli_result个实例来实际获取结果。

答案 1 :(得分:0)

只是旁边几乎要表明sql实际上是正确的(这不应该是问题的解决方案 - 虽然可能$ subject可能会丢掉东西?)

/* example data */
$subject='cars';
$topics=array('size','shape','colour','weight');

$newtopics = join("','", $topics);
$sql = "SELECT * FROM `".$subject."` WHERE `topic` IN ( '$newtopics' );";
echo $sql;

will output
SELECT * FROM `cars` WHERE `topic` IN ( 'size','shape','colour','weight' );