3
votes

I am using MySQL. I have a select statement followed by a number of insert statement done using the C Connector. I would like to know how to put them all under one transaction and finally commit then.

I have gone through the MySQL 5.0 Reference Manual and C API Function Overview it have this function mysql_commit()? I must have a start transaction (how to set this is it by just turning off the autocommit()) and finally only commit right?

1

1 Answers

5
votes

As far as I understand, there is no mysql_starttransaction() or something similar; so you're stuck with something like:

mysql_autocommit(conn, 0); 
//Do stuff here
mysql_commit(conn); //...or mysql_rollback(conn);

I would rather use the "query" method for all these calls:

mysql_query(conn, "START TRANSACTION");
//Do stuff here
mysql_query(conn, "COMMIT"); //...or mysql_query(conn, "ROLLBACK"); 

Also see this documentation.