Perché una riga di codice non funziona con il soppressore di errori rimosso?
-
28-10-2019 - |
Domanda
Sto usando le classi PHP per connettermi a un database.Non sono in grado di risolvere un problema, per favore aiutami in merito.
Ho una funzione:
function getCampus($cm_id) //returns campus name
{
$this->query = "select cm_name from campus where cm_id = ".$cm_id.";";
$rd = $this->executeQuery();
@$data = $rd->fetch_assoc();
}
e quando rimuovo @
da @$data
, non funziona.Per favore aiutatemi: spiegate cosa sarebbe un modo alternativo.Grazie.
Soluzione
@ viene utilizzato per sopprimere errori e avvisi.
@ non è un tuo problema
Altri suggerimenti
@
è l'operatore di soppressione degli errori.Usarlo come prefisso a una riga di codice sopprimerà tutti gli errori non fatali.È una cattiva idea usarlo quasi ogni volta.
Se non ottieni alcun output con la rimozione, prova ad aggiungere error_reporting(E_ALL)
all'inizio del tuo file o in un file di tipo bootstrap e assicurati che display_errors = On
in php.ini
(puoi anche utilizzare ini_set('display_errors', 'on')
).
Il simbolo @
davanti ai comandi viene utilizzato per ignorare eventuali errori che si verificano durante l'esecuzione.
Quella riga di codice continua a non funzionare quando metti un @
davanti, ma non lo vedi.Cerca di capire qual è il problema con $rd->fetch_assoc()
.Inoltre, la query sembra piuttosto sbagliata.
Il @
quando utilizzato in un'espressione PHP sopprime gli errori per quell'espressione.Quindi, è probabile che "non funzioni" perché $rd->fetch_assoc()
sta generando un'eccezione.