2016-04-16 15 views
1

Ich kann wirklich nicht verstehen, warum wir an der Spitze einer PHP-Datenobjekt PDO Verbindungsdatei setzen sollenDifferenz zwischen Fehlerberichterstattung und ERRMODE_EXCEPTION

error_reporting(E_ALL);//When we are in a development process;

Oder

error_reporting(0);//To shut off all errors when web app is live

Und zur gleichen Zeit, wenn wir unsere Verbindungsparameter erstellen, sollten wir hinzufügen:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Meine Frage ist, was ist der Unterschied und warum wir die beiden error_reporting und ERRMODE_EXCEPTION in der gleichen Datei verwenden? Was sind die Rollen von jedem von ihnen? Ist ihr Unterschied?

+0

'error_reporting' ist für Ihre PHP-Fehler, während der andere für Ihre PDO-Klasse ist. – Rizier123

Antwort

2

Zunächst einmal ist die ursprüngliche Aussage falsch.

error_reporting(E_ALL); 

sollte immer in allen Umgebungen identisch sein.

Während der Unterschied zwischen den beiden in Bezug auf, ist error_reporting() ein PHP -weite bezogene Einstellung, für alle PHP-Fehler verantwortlich und

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

ist nur für PDO.

So können Sie sagen, warum Sie beide verwenden müssen: error_reporting (E_ALL) wird Sie auf alle PHP-Fehler aufmerksam machen, wie fehlende Variable oder ein Dateisystemerlaubnisproblem. PDO's setAttribute teilt dem PDO lediglich mit, dass es seine eigenen Fehler melden soll und stellt sie somit über error_reporting (E_ALL) zur Verfügung.

würden die richtigen Einstellungen sein:

error_reporting(E_ALL); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
  • in allen Umgebungen.

Und dann

ini_set('display_errors', 1); 

wenn wir in einem Entwicklungsprozess;

ini_set('display_errors', 0); 
ini_set('log_errors', 1); 

Um Anzeige aus alle Fehler zu schließen, wenn Web-App aktiv ist, während sie als Hinweis für den Entwickler anzumelden.

+0

Ich mochte Ihre phpdelusion Website und ich werde daraus lernen. Danke –

+0

Was ist das Log_Fehler? Warum sollten wir es mit display_errors verwenden? –

+0

Froh, dass es geholfen hat. Fühlen Sie sich frei, irgendwelche Fragen zu stellen. –

Verwandte Themen