# mysql\_stmt\_init

## Syntax

```c
MYSQL_STMT * mysql_stmt_init(MYSQL * mysql);
```

* `mysql` - a mysql handle, which was previously allocated by [mysql\_init()](https://mariadb.com/docs/connectors/mariadb-connector-c/api-functions/mysql_init) or [mysql\_real\_connect()](https://mariadb.com/docs/connectors/mariadb-connector-c/api-functions/mysql_real_connect).

## Description

Initializes and allocates memory for a prepared statement. Returns a pointer to a `MYSQL_STMT` structure or NULL if an error occurred.

{% hint style="info" %}
Members of the `MYSQL_STMT` structure are not intended for application use`.\`

A statement handles which was allocated by `mysql_stmt_init()` needs to be freed with [mysql\_stmt\_close()](https://mariadb.com/docs/connectors/mariadb-connector-c/api-prepared-statement-functions/mysql_stmt_close).\\

Any subsequent calls to any `mysql_stmt` function will fail until [mysql\_stmt\_prepare()](https://mariadb.com/docs/connectors/mariadb-connector-c/api-prepared-statement-functions/mysql_stmt_prepare) was called.
{% endhint %}

## See Also

* [mysql\_stmt\_close()](https://mariadb.com/docs/connectors/mariadb-connector-c/api-prepared-statement-functions/mysql_stmt_close)
* [mysql\_stmt\_prepare()](https://mariadb.com/docs/connectors/mariadb-connector-c/api-prepared-statement-functions/mysql_stmt_prepare)

{% @marketo/form formId="4316" %}
