Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN'

This commit is contained in:
Friedrich Wilckens
2023-11-03 20:15:12 -07:00
parent 743da564eb
commit 8baa2f9c34

View File

@@ -153,14 +153,14 @@ void SessionHandle::close()
void SessionHandle::startTransaction()
{
int rc = mysql_autocommit(_pHandle, false);
int rc = mysql_query(_pHandle, "BEGIN");
if (rc != 0)
{
// retry if connection lost
int err = mysql_errno(_pHandle);
if (err == 2006 /* CR_SERVER_GONE_ERROR */ || err == 2013 /* CR_SERVER_LOST */)
{
rc = mysql_autocommit(_pHandle, false);
rc = mysql_query(_pHandle, "BEGIN");
}
}
if (rc != 0) throw TransactionException("Start transaction failed.", _pHandle);