Я делаю следующее …
$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 { ....
Не уверен, почему нулевое условие не работает …
Ваше нулевое состояние не работает, потому что $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>";
}
попробуйте с —
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()
— возвращает следующую строку из запроса в виде массива.