MySQL 一次履行多條語句的完成及罕見成績。本站提示廣大學習愛好者:(MySQL 一次履行多條語句的完成及罕見成績)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL 一次履行多條語句的完成及罕見成績正文
MySQL是支撐在單個查詢字符串中指定多語句履行的,應用辦法是給鏈接指定參數:
//鏈接時設定
mysql_real_connect( ..., CLIENT_MULTI_STATEMENTS );
//或許
//半途指定
mysql_set_server_option( mysql, MYSQL_OPTION_MULTI_STATEMENTS_ON ); //mysql是銜接的稱號
當應用履行多語句功效後,必定要讀完全個resault集,不然會湧現毛病:Commands out of sync; you can't run this command now
官方推舉的履行語句是如許的:
do
{
/* Process all results */
...
printf( "total affected rows: %lld", mysql_affected_rows( mysql ) );
...
if( !( result mysql_store_result( mysql ) ) )
{
printf( stderr, "Got fatal error processing query\n" );
exit(1);
}
process_result_set(result); /* client function */
mysql_free_result(result);
}while( !mysql_next_result( mysql ) );
假如僅僅是拔出等不須要前往值的SQL語句,也一樣得讀完全個resault集並釋放,最小化的寫法:
do
{
result = mysql_store_result( mysql );
mysql_free_result(result);
}while( !mysql_next_result( mysql ) );