====== mysql_commit ======
my_bool mysql_commit(MYSQL *mysql)
==== description of mysql_commit ====
mysql_commit Commits the current transaction.
The action of this function is subject to the value of the completion_type system variable. \\
if the value of completion_type is 2, the server performs a release after terminating a transaction and closes the client connection. The client program should call mysql_close().
#include /* including standard library */
#include
MYSQL *my;
MYSQL_ROW row;
MYSQL_RES *mysql_res;
int main( void ){
char host[20];
char user[20];
char pass[20];
unsigned long numrows = 0;
my = mysql_init(NULL);
sprintf(host,"localhost");
sprintf(user,"username");
sprintf(pass,"password");
if (my == NULL ) {
printf("Cant initalisize MySQL\n");
return 1;
}
if( mysql_real_connect (my,host,user,pass,NULL,0,NULL,0) == NULL) {
printf("Error cant login\n");
} else {
printf("Login correct\n");
}
mysql_select_db(my,"test");
mysql_autocommit(my, (my_bool)0); // set autocommit to false
mysql_query(my, "TRUNCATE TABLE `collection`;");
mysql_query(my, "INSERT INTO `test`.`collection`"
" (`id`, `name`, `title`, `published`)"
" VALUES (NULL, 'Debian', 'Debian 4.0', '2011-02-14');");
mysql_query(my, "SELECT * from collection WHERE 1;");
if (mysql_affected_rows(my) >= 1) {
mysql_rollback(my);
}
else {
mysql_commit(my);
}
printf("rows affected: %li\n", numrows);
mysql_res = mysql_store_result(my);
row = mysql_fetch_row (mysql_res); // fetch the result
numrows = (unsigned long) mysql_num_rows (mysql_res);
printf("rows affected after mysql_commit: %li\n", numrows);
mysql_close(my);
return 0;
}
===== output of mysql_commit c example =====
Login correct
rows affected: 0
rows affected after mysql_commit: 1