sql >> Database teknologi >  >> RDS >> Mysql

Forskellen mellem PDO->query() og PDO->exec()

På trods af hvilken som helst teoretisk forskel, bør ingen af ​​disse funktioner alligevel bruges - så der er intet at bekymre sig om.

Den eneste grund til at bruge PDO er understøttelse af udarbejdede erklæringer , men ingen af ​​disse funktioner tilbyder det. Så de skal ikke bruges.

Brug prepare()/execute() i stedet især for UPDATE,INSERT,DELETE-udsagn.

Bemærk venligst, at selvom udarbejdede udtalelser i vid udstrækning annonceres som en sikkerhedsforanstaltning, er det kun for at tiltrække folks opmærksomhed. Men deres rigtige formålet er korrekt forespørgselsformatering . Hvilket også giver dig sikkerhed - da korrekt formateret forespørgsel ikke så godt kan injiceres - lige som en bivirkning. Men igen - formatering er et primært mål, bare fordi selv uskyldige data kan forårsage en forespørgselsfejl, hvis de ikke formateres korrekt.

EDIT:Bemærk venligst, at execute() returnerer kun TRUE eller FALSE for at indikere succes af operationen. For andre oplysninger, såsom antallet af poster, der er påvirket af en UPDATE , metoder såsom rowCount() leveres. Se dokumenterne .



  1. Sådan undgår du MySQL 'Deadlock fundet, når du forsøger at få lås; prøv at genstarte transaktion'

  2. Hvordan kan jeg konvertere en MDB-fil (Access) til MySQL (eller almindelig SQL-fil)?

  3. MySql SELECT AS - Tilføj alle feltnavne

  4. Hvornår kalder jeg bind_param, hvis jeg bruger MySQLi-forberedte sætninger i en loop?