Php/docs/mysqli-stmt.get-result

来自菜鸟教程
跳转至:导航、​搜索

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::get_result -- mysqli_stmt_get_resultGets a result set from a prepared statement


说明

面向对象风格

public mysqli_stmt::get_result ( ) : mysqli_result

过程化风格

mysqli_stmt_get_result ( mysqli_stmt $stmt ) : mysqli_result

Call to return a result set from a prepared statement query.


参数

stmt
仅以过程化样式:由 mysqli_stmt_init() 返回的 statement 标识。


返回值

Returns a resultset for successful SELECT queries, or false for other DML queries or on failure. The mysqli_errno() function can be used to distinguish between the two types of failure.


仅 MySQL 原生驱动

仅可用于 mysqlnd


范例

Example #1 面向对象风格

<?php $mysqli = new mysqli("127.0.0.1", "user", "password", "world"); if($mysqli->connect_error){    die("$mysqli->connect_errno: $mysqli->connect_error");}$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";$stmt = $mysqli->stmt_init();if(!$stmt->prepare($query)){    print "Failed to prepare statement\n";}else{    $stmt->bind_param("s", $continent);    $continent_array = array('Europe','Africa','Asia','North America');    foreach($continent_array as $continent)    {        $stmt->execute();        $result = $stmt->get_result();        while ($row = $result->fetch_array(MYSQLI_NUM))        {            foreach ($row as $r)            {                print "$r ";            }            print "\n";        }    }}$stmt->close();$mysqli->close();?>

Example #2 过程化风格

<?php $link = mysqli_connect("127.0.0.1", "user", "password", "world"); if (!$link){    $error = mysqli_connect_error();    $errno = mysqli_connect_errno();    print "$errno: $error\n";    exit();}$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";$stmt = mysqli_stmt_init($link);if(!mysqli_stmt_prepare($stmt, $query)){    print "Failed to prepare statement\n";}else{    mysqli_stmt_bind_param($stmt, "s", $continent);    $continent_array = array('Europe','Africa','Asia','North America');    foreach($continent_array 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";        }    }}mysqli_stmt_close($stmt);mysqli_close($link);?>

以上例程会输出:


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

参见