A partir da versão 4.1, o MySQL suporta a execução de
multiplas instruções especificadas em uma única string de
consulta. Para utilizá-lo com uma dada conexão, você deve
especificar a opção CLIENT_MULTI_STATEMENTS
no parâmetro do mysql_real_connect()
quando
abrir a conexão. Você também pode configurá-la para uma
conexão chamando
mysql_set_server_option(MYSQL_OPTION_MULTI_STATEMENTS_ON)
Por padrão mysql_query()
ou
mysql_real_query()
retornam apenas o status
da primeira consulta e o status das consultas subsequentes podem
ser processados usando mysql_more_results()
e
mysql_next_result()
.
/* Connect to server with option CLIENT_MULTI_STATEMENTS */ mysql_real_connect(..., CLIENT_MULTI_STATEMENTS); /* Now execute multiple queries */ mysql_query(mysql,"DROP TABLE IF EXISTS test_table;\ CREATE TABLE test_table(id INT);\ INSERT INTO test_table VALUES(10);\ UPDATE test_table SET id=20 WHERE id=10;\ SELECT * FROM test_table;\ DROP TABLE test_table"; 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(mysql); }while (!mysql_more_results(mysql))
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.