Mysql
 sql >> база данни >  >> RDS >> Mysql

Коя функция за изпълнение трябва да използвам в MySQL конектор/c++?

Всяка от трите функции има специфична употреба, която може да се познае от техния тип на връщане.

изпълни

Тази функция е най-общата. Връща булева стойност, която стойност е истина, ако заявката връща множество резултати, или невярно, ако заявката не връща или нищо, или връща брой актуализации.

Това е функцията, която ще искате да използвате, ако искате да използвате само една, за да бъде възможно най-генерична.

Ако върне true, ще искате да използвате ResultSet * getResultSet() за да получите резултатите.
Ако върне false, ще искате да използвате uint64_t getUpdateCount() за да получите броя на актуализираните редове.

executeQuery

Тази функция директно връща ResultSet което е полезно за SELECT изрази и предполага, че наистина има резултатен набор, който да бъде върнат.

Това е еквивалентно на извикването на execute() последвано от getResultSet() .

Ще искате да използвате тази функция, когато знаете, че използвате SQL код, който връща резултати като редове.

executeUpdate

Тази функция връща целочислена стойност, която е полезна за UPDATE изрази и предполага, че има връщан брой актуализации.

Това е еквивалентно на извикването на execute() последвано от getUpdateCount() , въпреки че по някаква причина връщаните типове са различни (int спрямо uint64_t).

Това е функцията, която трябва да използвате, когато изпълнявате SQL изрази, които променят данни и трябва да знаете дали някои данни са били променени.

И така,

унифицираният всъщност е execute , който може да се използва за изпълнение на произволен SQL и подходящо обработване на резултата, докато другите два са удобни обвивки, когато знаете какъв вид заявка изпълнявате.

Във вашия случай, тъй като пишете обвивка около езика SQL, всяка от вашите функции знае кой вид оператор ще изпълни, така че използването на функциите за удобство ще ви позволи да пишете по-кратък код.

Например:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите по множество критерии с Phalcon findFirst?

  2. Когато използвате poolConnection или CreateConnection felixge/node-mysql

  3. Не може да се AES_DECRYPT след AES_ENCRYPT в mysql

  4. Заявка SELECT в клаузата WHERE на заявката UPDATE

  5. Разлика между нормален ajax и дълга анкета