2012-05-20 16 views
14

Voglio verificare se la mia query preparata è tornata vuota o no senza dover entrare in un ciclo. Questo è il codice che ho provato con:php non può controllare se un risultato PDO è vuoto usando vuoto() restituisce ERRORE FATALE

if(empty($pQuery1->fetch(PDO::FETCH_ASSOC))){} 

Quando provo questo ottengo l'errore:

Fatal error: Can't use method return value in write context

Sia io uso PDO->fetchALL o PDO->fetch ricevo lo stesso errore. Dovrei fare qualcosa di diverso?

risposta

32

È necessario assegnare i risultati a una variabile, quindi chiamare empty() sulla variabile. È solo una seccante limitazione della funzione empty(). Vedi domanda this.

$results = $pQuery1->fetch(PDO::FETCH_ASSOC); 
if (empty($results)){} 
+6

id piace indicare che si potrebbe anche fare 'se (! $ Risultati) {}' come si comporta in modo identico. – goat

+1

@chris if (vuoto ($ pippo)) non genera un avviso se il parametro non è impostato. se (! $ pippo) genererà un avviso se il parametro non è impostato. http://php.net/manual/en/function.empty.php – Jake

+0

è stato impostato sulla riga precedente :) – goat

Problemi correlati