# maxdb_stmt_bind_result

# maxdb_stmt::bind_result

(PECL maxdb >= 1.0)

maxdb_stmt_bind_result -- maxdb_stmt::bind_result — Binds variables to a prepared statement for result storage

### 说明

过程化风格

maxdb_stmt_bind_result ( resource `$stmt` , mixed `&$var1` [, mixed `&$...` ] ) : bool

面向对象风格

maxdb_stmt::bind_result ( mixed `&$var1` [, mixed `&$...` ] ) : bool

maxdb_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When maxdb_stmt_fetch() is called to fetch data, the MaxDB client/server protocol places the data for the bound columns into the specified variables `var1, ...`.

> Note:

> Note that all columns must be bound prior to calling maxdb_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.

> A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time maxdb_stmt_fetch() is called.

### 返回值

成功时返回 `TRUE`， 或者在失败时返回 `FALSE`。

### 范例

Example #1 面向对象风格

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

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

    /* prepare statement */
    if ($stmt = $maxdb->prepare("SELECT zip, name FROM hotel.city ORDER BY name")) {
       $stmt->execute();

       /* bind variables to prepared statement */
       $stmt->bind_result($col1, $col2);

       /* fetch values */
       while ($stmt->fetch()) {
           printf("%s %s\n", $col1, $col2);
       }

       /* close statement */
       $stmt->close();
    }
    /* close connection */
    $maxdb->close();

    ?>

Example #2 过程化风格

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

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

    /* prepare statement */
    if ($stmt = maxdb_prepare($link, "SELECT zip, name FROM hotel.city ORDER BY name")) {
       maxdb_stmt_execute($stmt);

       /* bind variables to prepared statement */
       maxdb_stmt_bind_result($stmt, $col1, $col2);

       /* fetch values */
       while (maxdb_stmt_fetch($stmt)) {
           printf("%s %s\n", $col1, $col2);
       }

       /* close statement */
       maxdb_stmt_close($stmt);
    }

    /* close connection */
    maxdb_close($link);
    ?>

以上例程的输出类似于：

    12203 Albany
    60601 Chicago
    60615 Chicago
    45211 Cincinnati
    33575 Clearwater
    75243 Dallas
    32018 Daytona Beach
    33441 Deerfield Beach
    48226 Detroit
    90029 Hollywood
    92714 Irvine
    90804 Long Beach
    11788 Long Island
    90018 Los Angeles
    70112 New Orleans
    10019 New York
    10580 New York
    92262 Palm Springs
    97213 Portland
    60018 Rosemont
    95054 Santa Clara
    20903 Silver Spring
    20005 Washington
    20019 Washington
    20037 Washington

### 参见

- maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters
- maxdb_stmt_execute() - Executes a prepared Query
- maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
- maxdb_prepare() - Prepare an SQL statement for execution
- maxdb_stmt_prepare() - Prepare an SQL statement for execution
- maxdb_stmt_init() - Initializes a statement and returns an resource for use with maxdb_stmt_prepare
- maxdb_stmt_errno() - Returns the error code for the most recent statement call
- maxdb_stmt_error() - Returns a string description for last statement error