.\" Automatically generated by Pandoc 2.5
.\"
.TH "mysql_autocommit" "3" "" "Version 3.3.1" "MariaDB Connector/C"
.hy
.SS Name
.PP
mysql_autocommit \- Toggles autocommit mode
.SS Synopsis
.IP
.nf
\f[C]
#include <mysql.h>

my_bool mysql_autocommit(MYSQL * mysql, my_bool auto_mode);
\f[R]
.fi
.SS Description
.PP
Toggles autocommit mode on or off for the current database connection.
Autocommit mode will be set if mode=1 or unset if mode=0.
.SS Parameters:
.IP \[bu] 2
\f[C]mysql\f[R] is a connection identifier, which was previously
allocated by \f[B]mysql_init(3)\f[R] and connected by
\f[B]mysql_real_connect(3)\f[R].
.IP \[bu] 2
\f[C]auto_mode\f[R] \- whether to turn autocommit on or not.
.SS Notes
.IP \[bu] 2
Autocommit mode only affects operations on transactional table types.
To determine the current state of autocommit mode use the SQL command
\f[C]SELECT \[at]\[at]autocommit\f[R] or check the server status (see
example below).
.IP \[bu] 2
Be aware: the [mysql_rollback()}(mysql_rollback() function will not work
if autocommit mode is switched on.
.SS Examples
.SS SQL
.IP
.nf
\f[C]
# Turn of autocmmit
SET AUTOCOMMIT=0;

# Retrieve autocommit
SELECT \[at]\[at]autocommit;
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| \[at]\[at]autocommit |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
|            0 |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
\f[R]
.fi
.SS MariaDB Connector/C
.IP
.nf
\f[C]
static int test_autocommit(MYSQL *mysql)
{
  int rc;
  unsigned int server_status;
  
  /* Turn autocommit off */
  rc= mysql_autocommit(mysql, 0);
  if (rc)
    return rc; /* Error */

  /* If autocommit = 0 succeeded, the last OK packet updated the server status */
  rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_STATUS, &server_status);
  if (rc)
    return rc; /* Error */

  if (server_status & SERVER_STATUS_AUTOCOMMIT)
  {
    printf(\[dq]Error: autocommit is on\[rs]n\[dq]);
    return 1;
  }
  printf(\[dq]OK: autocommit is off\[rs]n\[dq]);
  return 0;
}
\f[R]
.fi