Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unterschied zwischen PDO->query() und PDO->exec()

Trotz aller theoretischen Unterschiede sollte keine dieser Funktionen ohnehin verwendet werden - also kein Grund zur Sorge.

Der einzige Grund für die Verwendung von PDO ist die Unterstützung vorbereiteter Anweisungen , aber keine dieser Funktionen bietet es an. Daher sollten sie nicht verwendet werden.

Verwenden Sie prepare()/execute() stattdessen besonders für UPDATE-, INSERT-, DELETE-Anweisungen.

Bitte beachten Sie, dass vorbereitete Erklärungen zwar weithin als Sicherheitsmaßnahme beworben werden, dies jedoch nur dazu dient, die Aufmerksamkeit der Menschen zu erregen. Aber sie sind echt Zweck ist die korrekte Abfrageformatierung . Was Ihnen auch Sicherheit gibt - da eine richtig formatierte Abfrage nicht so gut injiziert werden kann - nur als Nebeneffekt. Aber noch einmal – die Formatierung ist ein primäres Ziel, da selbst unschuldige Daten einen Abfragefehler verursachen können, wenn sie nicht richtig formatiert sind.

BEARBEITEN:Bitte beachten Sie, dass execute() gibt nur TRUE zurück oder FALSE um den Erfolg der Operation anzuzeigen. Für andere Informationen, wie z. B. die Anzahl der Datensätze, die von einem UPDATE betroffen sind , Methoden wie rowCount() sind vorgesehen. Siehe die Dokumentation .