gpt4 book ai didi

php - array_merge_recursive 声明数组不是数组

转载 作者:行者123 更新时间:2023-11-29 12:16:34 24 4
gpt4 key购买 nike

我已经浏览了这里的帖子,但找不到任何似乎可以解决我的问题的内容。我对 PHP/MySQL 相当陌生,我似乎无法弄清楚为什么这个 array_merge_recursive 函数一直告诉我我的第一个数组不是数组。我已经测试过它,一切都告诉我它是......直到它达到这个功能。这是我的代码。我正在尝试处理搜索表单中的多个可选变量(我已经研究过 Sphinx/Lucene,但目前无法使用它们)。首先,我正在处理一些已发布到页面的变量。

if (isset($_POST['city'])) {
$search = mysqli_real_escape_string($db, $_POST['city']);
$sqlCity = "SELECT `user_id` FROM `clients` WHERE MATCH (`city`) AGAINST ('$search' IN NATURAL LANGUAGE MODE)";
$dsCity = $db->query($sqlCity);
}

if (isset($_POST['state'])) {
$search = mysqli_real_escape_string($db, $_POST['state']);
$sqlState = "SELECT `user_id` FROM `clients` WHERE `state` = $search";
$dsState = $db->query($sqlState);
}

if (isset($_POST['zip'])) {
$search = mysqli_real_escape_string($db, $_POST['zip']);
$sqlZip = "SELECT `user_id` FROM `clients` WHERE `zip` = $search";
$dsZip = $db->query($sqlZip);
}

if (isset($_POST['business-name'])) {
$search = mysqli_real_escape_string($db, $_POST['business-name']);
$sqlBus = "SELECT `user_id` FROM `clients` WHERE `business_name` = '$search' ";
$dsBus = $db->query($sqlBus);
}

然后,我想将生成的数组合并到一个数组中,该数组作为单个变量传递给 PHP 代码的其余部分。

// Create array from Detailed Search variables
if (isset($_POST['city']) || isset($_POST['state']) || isset($_POST['zip']) || isset($_POST['business-name']) ) {
$searchResults = array_merge_recursive($dsCity, $dsState, $dsZip, $dsBus);
}

?>

[在这里分解成一些 HTML...然后进行处理。其余代码有效。在它到达这一步之前我就不断收到错误。]

while ($row=$searchResults->fetch_object()) {
$userID = $row->user_id;

我不断收到的错误消息是“array_merge_recursive(): Argument #1 is not an array”。有什么想法吗?

最佳答案

您需要从查询中取回结果。 mysqli::query 返回一个 mysqli_result 对象,而不是一个数组。

$result = $db->query($sqlZip);
$dsZip = $result->fetch_array();

对每个查询执行此操作。这是您尝试使用的对象类型: http://php.net/manual/en/class.mysqli-result.php

希望对您有所帮助!

关于php - array_merge_recursive 声明数组不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711091/

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