gpt4 book ai didi

php - 数组到字符串转换错误

转载 作者:行者123 更新时间:2023-12-02 05:43:37 26 4
gpt4 key购买 nike

我有一个提取 ID 列表的查询。这些 ID 在一个数组中,我需要用这些 ID 搜索另一个表。我尝试使用 implode 使这些 ID 成为我可以在 where 子句中使用的字符串,但我不断收到此错误。

我当前的代码是:

 $query = $this->db->query('
SELECT *
FROM system_scoperights
WHERE user = '. $this->session->userdata('username') .'
');

foreach ($query->result() as $row) {
$scope = $row->site;
$data[] = $scope;
}
$dataScope[] = $data;

$idList = implode(',', $dataScope); <---- Error Line

$where = 'WHERE scope_scopes.sc_ID IN '. $idList .'';

我尝试过在论坛上找到的不同东西,例如:

 $idList = implode(',', array_values($dataScope));

 $idList = implode(',', join($dataScope));

但这些都不起作用。 (我从来没有听说过 join 函数)

在此先感谢您的帮助。

最佳答案

$dataScope[] = $data;

但是

$data[] = $scope;

因此 $dataScope 在它的数组中有一个数组。 implode 仅在一个级别上工作,因此您会收到此错误。

您应该注意到,这在 SQL 中实际上是可能的:

 SELECT * FROM some_table WHERE id IN (SELECT site FROM another_table WHERE ... )

这将消除对这段代码的全部需求。

即:

$where = 'WHERE scope_scopes.sc_ID IN (SELECT site
FROM system_scoperights
WHERE user = '. $this->session->userdata('username') . ')';

关于php - 数组到字符串转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11510398/

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