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

Hvilken execute funktion skal jeg bruge i MySQL connector/c++?

Hver af de tre funktioner har en specifik anvendelse, som kan gættes ud fra deres returtype.

udfør

Denne funktion er den mest generiske. Den returnerer en boolesk værdi, hvilken værdi er sand, hvis forespørgslen returnerer flere resultater, eller falsk, hvis forespørgslen enten ikke returnerer noget eller et opdateringsantal.

Dette er den funktion, du vil bruge, hvis du kun vil bruge én for at være så generisk som muligt.

Hvis det returnerer sandt, vil du gerne bruge ResultSet * getResultSet() for at få resultaterne.
Hvis det returnerer falsk, skal du bruge uint64_t getUpdateCount() for at få antallet af opdaterede rækker.

executeQuery

Denne funktion returnerer direkte et ResultSet hvilket er nyttigt til SELECT udsagn, og antager, at der faktisk er et resultatsæt, der skal returneres.

Det svarer til at kalde execute() efterfulgt af getResultSet() .

Du vil gerne bruge denne funktion, når du ved, at du bruger SQL-kode, der returnerer resultater såsom rækker.

executeUpdate

Denne funktion returnerer en heltalsværdi, som er nyttig til UPDATE udsagn og antager, at der er et opdateringstal, der skal returneres.

Det svarer til at kalde execute() efterfulgt af getUpdateCount() , selvom returtyperne af en eller anden grund er forskellige (int vs uint64_t).

Dette er den funktion, du skal bruge, når du udfører SQL-sætninger, der ændrer data, og du skal vide, om nogle data er blevet ændret.

Så,

den forenede er faktisk execute , som kan bruges til at udføre vilkårlig SQL og håndtere resultatet korrekt, mens de to andre er praktiske indpakninger, når du ved, hvilken slags forespørgsel du udfører.

I dit tilfælde, da du skriver en indpakning omkring SQL-sproget, ved hver af dine funktioner, hvilken slags sætning den vil udføre, så brug af bekvemmelighedsfunktionerne vil give dig mulighed for at skrive kortere kode.

For eksempel:

insert(), update(), delete() ---> executeUpdate()
select()                     ---> executeQuery()



  1. Direkte adgang til serverdatabase via Ajax (uden PHP eller en anden mellemliggende)

  2. Får fejl 1366 Forkert heltalsværdi:'1' ved import af fil

  3. Hvorfor MySQL-forbindelse er blokeret af mange forbindelsesfejl?

  4. forhindre duplikerede indgange til databasen