【发布时间】:2012-07-15 15:50:38
【问题描述】:
我有一个查询,它正在提取 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函数)
提前感谢您的帮助。
【问题讨论】:
-
我认为mysql查询末尾没有''的要求 - 只需在字符串连接后结束查询字符串! +1 查询字符串的样式,我喜欢 ;)
-
我知道你不需要最后的两个 ' ' 我只是喜欢把它们放在那里因为它对我来说似乎更有条理。
-
错误提示“数组到字符串转换错误”
标签: php arrays string codeigniter implode