mysqli::$sqlstate

mysqli_sqlstate

Returns the SQLSTATE error from previous MySQL operation

&reftitle.description;

&style.oop;

`string` `mysqli->sqlstate`

&style.procedural;

`string` `mysqli_sqlstate` `mysqli` `mysql`

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. `'00000'` means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see &url.mysql.docs.error;.

Note that not all MySQL errors are yet mapped to SQLSTATE's. The value `HY000` (general error) is used for unmapped errors.

&reftitle.parameters;

&mysqli.link.description;
&reftitle.returnvalues;

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. `'00000'` means no error.

&reftitle.examples;

### `$mysqli->sqlstate` example

&style.oop;

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    /* Table City already exists, so we should get an error */
    try {
        $mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
    } catch (mysqli_sql_exception) {
        printf("Error - SQLSTATE %s.\n", $mysqli->sqlstate);
    }

&style.procedural;

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");

    /* Table City already exists, so we should get an error */
    try {
        mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
    } catch (mysqli_sql_exception) {
        printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($link));
    }

&examples.outputs;

    Error - SQLSTATE 42S01.

&reftitle.seealso;

- `mysqli_errno`
- `mysqli_error`