phporacle-databaseoracle-call-interfaceoci8

Php and oracle OCI query


I have a prolem with this code

$stmt = oci_parse($db, $sql);
$isQueryOk = oci_execute($stmt);
if ($isQueryOk) {
    while (($row = oci_fetch_assoc($stmt)) != false) {
        array_push($results, $row);
    }
    echo json_encode($results);
} else {
    $msg = "Error FETCHING ALL [$sql] on " . mb_strtoupper($dbTable) . "!";
}

The problem is that if oci_fetch_assoc($stmt) return 20000 rows, the while (($row = oci_fetch_assoc($stmt)) != false) { array_push($results, $row); } takes to much time. Is there a way that i can return echo json_encode($results); without the WHILE cycle.

Thanks in advance.


Solution

  • OR try to use another way to push your array. "Note: If you use array_push() to add one element to the array it's better to use $array[] = because in that way there is no overhead of calling a function." http://php.net/manual/en/function.array-push.php

    $results[] = $row;