From: Warren Young Date: September 26 2007 5:22pm Subject: Re: query does not affect database List-Archive: http://lists.mysql.com/plusplus/7058 Message-Id: <46FA956D.2080404@etr-usa.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Jack Monflower wrote: > > Connection goes fine (I check if connect returns false, and it does not). You can't mix the return-code and exception error handling mechanisms in this way. I don't mean to suggest that the connection could be failing. If it were, your program would be crashing because you aren't (apparently) catching the exception you'd get if that were happening. It is something you need to address to make this code production-ready, however. If you must mix the two error handling mechanisms, you need to use a NoExceptions object to temporarily turn off exceptions for a given block of code. > if (!conn.connect("mydb", "localhost", "root", "")) [snip] > Transaction trans(Configuration::conn()); You're referring to the connection in two different ways here. Are you certain that these are the same connection? And I hope Configuration::conn() returns by reference? If not, that's probably the problem. > Everything goes well, compilation as well execution, and the program exits > with the message "user added". Still, when I check if anything was added to > the database, I see no new rows. Not all of the storage engines MySQL offers support transactions. Are you using one of them? Transactions are also relatively recent additions to MySQL. Are you using a version of MySQL that even supports transaction-aware storage engines? Does it work if you type the SQL for this insertion sequence into the mysql command line client?