gpt4 book ai didi

php - WHERE column_name IN Array() 返回空数组

转载 作者:行者123 更新时间:2023-11-29 21:25:20 27 4
gpt4 key购买 nike

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

所以我的函数看起来像这样。

public static function find_records($subject="", $topics=[]){

global $database;

foreach($topics as $key => $topic) {
$topics[$key] = $database->escape_value($topic);
}

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

$result_set = $database->query($sql);

$object_array = array();
while ($row = $result_set->fetch_array()) {
$object_array[] = $row;
}

return !empty($object_array) ? $object_array : false;
}

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

最佳答案

顺便说一句,几乎表明 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' );

关于php - WHERE column_name IN Array() 返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35534737/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com