Dipende da cosa intendi.
mysql_result restituisce FALSE
in caso di errore, che si verificherebbe se si specificava un campo non valido (riga, campo). Per verificare ciò, si consiglia di utilizzare l'operatore identity ===
, che controlla sia il valore che il tipo. L'operatore di uguaglianza ==
, la funzione empty()
e la valutazione condizionale di un'istruzione if controllano tutti il valore ma non il tipo.
Questo significa che utilizzando uno di questi metodi non c'è differenza tra i vari valori che tutti equiparare Boolean FALSE
, come stringhe vuote, array vuoti, la stringa '0'
, e il valore NULL
.
Quindi, se si vuole essere veramente approfondita su di esso si potrebbe fare qualcosa di simile al seguente:
if ($description === FALSE) {
throw new Exception("The row $i was out of range in query $query.");
} else if ($description === NULL) {
// assuming that the description field has a default value of NULL
// * this one I'm not sure about.. the documentation for mysql_result claims
// that it returns a string, so this may never happen.
// It's left as an exercise for the reader.
throw new Exception("Uninitialized value in result row $i of db query $query");
} else if ($description === '') {
echo "No description available";
} else {
echo $description;
}
Dal empty()
rendimenti true
sotto un simile insieme di condizioni di uguaglianza (==
) con FALSE
, questo più il rigoroso controllo del tipo sarebbe particolarmente importante nei casi in cui il risultato potrebbe essere in realtà "0"
.
Apparentemente non sono autorizzato a pubblicare più di un collegamento ipertestuale, quindi non è stato possibile collegarmi alla documentazione per gli operatori di confronto ("http://php.net/manual/en/language.operators.comparison.php") o la funzione vuota ("http://php.net/empty"). Fortunatamente la loro sicurezza è relativamente lassista. Mwuh Hah!
Funziona perfettamente, grazie mille. –
Non hai mai bisogno di usare vuoto! – dynamic
@ yes123: vorresti approfondire su questo? Non ne hai BISOGNO per ogni account, ma perché non usarlo? – Sk8erPeter