php implode 不能与 sql oracle 一起工作

php implode not working with sql oracle

尝试将来自 oracle table 的所有结果放入 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]);  
}

结果是:resul1result2result3result4

而不是:result1、result2、result3

这里的问题是您一次获取一行,然后分解单个项目,最后没有逗号(因为只有一个)。你输出它,然后循环到下一个结果 - 将它放在输出中。

相反,也许可以尝试以下方法,它构造一个结果数组,然后回显内爆的结果:

$results = [];
while (($row = oci_fetch_row($sql)) != false) {
    $results[] = $row[0];
}
echo implode(',', $results);

is to fetch all rows in the resultset directly using 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]);