sql >> Database >  >> RDS >> Mysql

Verschil tussen PDO->query() en PDO->exec()

Ondanks welk theoretisch verschil dan ook, mag geen van deze functies toch worden gebruikt - er is dus niets aan de hand.

De enige reden om PDO te gebruiken is ondersteuning voor voorbereide verklaringen , maar geen van deze functies biedt het. Ze mogen dus niet worden gebruikt.

Gebruik prepare()/execute() in plaats daarvan, vooral voor UPDATE,INSERT,DELETE-instructies.

Houd er rekening mee dat hoewel voorbereide verklaringen op grote schaal worden geadverteerd als een veiligheidsmaatregel, het alleen is om de aandacht van mensen te trekken. Maar hun echte doel is juiste opmaak van zoekopdrachten . Dat geeft u ook veiligheid - aangezien een correct geformatteerde query niet zo goed kan worden geïnjecteerd - net als bijwerking. Maar nogmaals:opmaak is een primair doel, alleen omdat zelfs onschuldige gegevens een queryfout kunnen veroorzaken als ze niet correct zijn opgemaakt.

EDIT:Houd er rekening mee dat execute() retourneert alleen TRUE of FALSE om het succes van de operatie aan te geven. Voor andere informatie, zoals het aantal records dat wordt beïnvloed door een UPDATE , methoden zoals rowCount() voorzien. Zie de docs .



  1. Een tabel maken in de modus voor één gebruiker in postgre

  2. Hoe een geparametriseerde Oracle Insert-query te schrijven?

  3. cursor:pin S wacht op X

  4. Validatie mislukt voor query voor methode JPQL