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?