Проверьте наличие пустого набора строк в oci_fetch_array

Я делаю следующее …

$approved = oci_parse($conn_prs, "select * from patch_files where patch_reviewer = '". $_SESSION['id'] ."' and patch_status = 'Approved'"); // now rows available for current id
oci_execute($approved);
while ($row = oci_fetch_array($approved, OCI_BOTH  + OCI_RETURN_NULLS )) {
var_dump($row); // shows nothing
if ($row == null) { echo "<p>None Found...</p>"; }
else { ....

Не уверен, почему нулевое условие не работает …

0

Решение

Ваше нулевое состояние не работает, потому что $row никогда null, oci_fetch_array() возвращает массив полей строк или false, Если строк нет while цикл не выполняется.

Вы, кажется, неправильно поняли цель OCI_RETURN_NULLS, При использовании он создает элементы массива для пустых поля в $row, а не пустой массив, если нет строк.

Быстрый и грязный способ сделать то, что вы хотите, это:

$i = 0;
while ($row = oci_fetch_array($approved, OCI_BOTH  + OCI_RETURN_NULLS)) {
$i++;
...
}
if ($i == 0) {
echo "<p>None Found...</p>";
}
1

Другие решения

попробуйте с —

while ($row = oci_fetch_array($approved, OCI_BOTH  + OCI_RETURN_NULLS )) {
var_dump($row); // shows nothing
if (empty($row)) { echo "<p>None Found...</p>"; }
else { ....

oci_fetch_array() — возвращает следующую строку из запроса в виде массива.

0

По вопросам рекламы [email protected]