尝试使用此代码使用implode将oracle表中的所有结果放入php变量但不起作用。 这里有什么问题?
$sql = oci_parse($ora_con, "SELECT * FROM TABLE");
oci_execute($sql);
while (($row = oci_fetch_row($sql)) != false) {
echo $result = implode(',',(array)$row[0]);
}
结果是:结果1结果3结果4
而不是:result1,result2,result3
答案 0 :(得分:2)
这里的问题是你一次取一行,然后插入一个单项,最后没有逗号(因为只有一个)。你输出它,然后循环到下一个结果 - 它将它放在输出中。
相反,也许尝试以下方法,构造一个结果数组,然后回应内爆结果:
$results = [];
while (($row = oci_fetch_row($sql)) != false) {
$results[] = $row[0];
}
echo implode(',', $results);
答案 1 :(得分:0)
choult's answer的替代方法是使用oci_fetch_all
直接获取结果集中的所有行:
$sql = oci_parse($ora_con, 'SELECT * FROM TABLE');
oci_execute($sql);
oci_fetch_all($sql, $result, 0, -1, OCI_NUM);
echo implode(',', $result[0]);