Попытка поместить все результаты из таблицы oracle в переменную php, используя implode с этим кодом, но не работает. Что здесь не так?
$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);
Альтернативой ответу choult является выборка всех строк в наборе результатов с помощью 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]);