# maxdb_sqlstate

# maxdb::sqlstate

(PECL maxdb >= 1.0)

maxdb_sqlstate -- maxdb::sqlstate — Returns the SQLSTATE error from previous MaxDB operation

### 说明

过程化风格

maxdb_sqlstate ( resource `$link` ) : string

面向对象风格

string $maxdb->sqlstate;

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.

> Note:

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

### 返回值

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

### 范例

Example #1 面向对象风格

    <?php
    $maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

    /* check connection */
    if (maxdb_connect_errno()) {
       printf("Connect failed: %s\n", maxdb_connect_error());
       exit();
    }

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

    $maxdb->close();
    ?>

Example #2 过程化风格

    <?php
    $link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

    /* check connection */
    if (maxdb_connect_errno()) {
       printf("Connect failed: %s\n", maxdb_connect_error());
       exit();
    }

    /* Table City already exists, so we should get an error */
    if (!maxdb_query($link, "CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
       printf("Error - SQLSTATE %s.\n", maxdb_sqlstate($link));
    }

    maxdb_close($link);
    ?>

以上例程的输出类似于：

    Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
    Error - SQLSTATE I6000.

### 参见

- maxdb_errno() - Returns the error code for the most recent function call
- maxdb_error() - Returns a string description of the last error