Domanda

La mia procedura di PL / SQL restituisce un cursore. Esso restituisce sempre i dati. I fetch (oci_fetch_assoc) e salvarlo in un array. Se i risultati sono stati trovati i tasti della matrice saranno stringhe. Se il cursore non ha trovato dati, sarà il valore 0 ritorno, così la chiave dell'array sarà numerico.

while($data = oci_fetch_assoc($cursor)){
    if(!isset($data[0])){
       ...
    }
...
...
}

Qual è il modo migliore per controllare che la matrice non è solo 0, ma contiene dati?

Grazie

È stato utile?

Soluzione

Questa è la mia soluzione:

if($data != array(0 => "0")){

e funziona

Altri suggerimenti

if(!empty($data[0])) { ... }

oci_fetch_assoc restituisce una matrice associata, cioè i nomi delle colonne sono indici nella matrice.

provare uno di questi:

($data['firstColumn'] === 0)
(reset($data) === 0)

dove 'firstColumn' è il nome effettivo della prima colonna

È possibile utilizzare la '===' per vedere se $ dati [0] è uguale a 0. Come:

if($data[0]===0) {
   // It really is the number 0
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top