mysqli_stmt::get_result

mysqli_stmt_get_result

Gets a result set from a prepared statement as a `mysqli_result` object

&reftitle.description;

&style.oop;

public ``mysqli_result``false```mysqli_stmt::get_result`

&style.procedural;

``mysqli_result``false```mysqli_stmt_get_result` `mysqli_stmt` `statement`

Retrieves a result set from a prepared statement as a `mysqli_result` object. The data will be fetched from the MySQL server to PHP. This method should be called only for queries which produce a result set.

&mysqli.available.mysqlnd;

This function cannot be used together with `mysqli_stmt_store_result`. Both of these functions retrieve the full result set from the MySQL server.

&reftitle.parameters;

&mysqli.stmt.description;
&reftitle.returnvalues;

Returns &false; on failure. For successful queries which produce a result set, such as `SELECT, SHOW, DESCRIBE` or `EXPLAIN`, `mysqli_stmt_get_result` will return a `mysqli_result` object. For other successful queries, `mysqli_stmt_get_result` will return &false;. The `mysqli_stmt_errno` function can be used to distinguish between the two reasons for &false;; due to a bug, prior to PHP 7.4.13, `mysqli_errno` had to be used for this purpose.

&reftitle.errors; &mysqli.conditionalexception;
&reftitle.examples;

### &style.oop;

    <?php

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

    $query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

    $stmt = $mysqli->prepare($query);
    $stmt->bind_param("s", $continent);

    $continentList = array('Europe', 'Africa', 'Asia', 'North America');

    foreach ($continentList as $continent) {
        $stmt->execute();
        $result = $stmt->get_result();
        while ($row = $result->fetch_array(MYSQLI_NUM)) {
            foreach ($row as $r) {
                print "$r ";
            }
            print "\n";
        }
    }

### &style.procedural;

    <?php

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

    $query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

    $stmt = mysqli_prepare($link, $query);
    mysqli_stmt_bind_param($stmt, "s", $continent);

    $continentList= array('Europe', 'Africa', 'Asia', 'North America');

    foreach ($continentList as $continent) {
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
            foreach ($row as $r) {
                print "$r ";
            }
            print "\n";
        }
    }

&examples.outputs.similar;

    Albania 3401200 Europe
    Algeria 31471000 Africa
    Afghanistan 22720000 Asia
    Anguilla 8000 North America

&reftitle.seealso;

- `mysqli_prepare`
- `mysqli_stmt_result_metadata`
- `mysqli_stmt_fetch`
- `mysqli_fetch_array`
- `mysqli_stmt_store_result`