Php/docs/mysqli-stmt.get-result

提供:Dev Guides
< Php
移動先:案内検索

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::get_result -- mysqli_stmt_get_resultプリペアード・ステートメントから結果セットを取得


説明

オブジェクト指向型

public mysqli_stmt::get_result ( ) : mysqli_result

手続き型

mysqli_stmt_get_result ( mysqli_stmt $stmt ) : mysqli_result

プリペアード・ステートメントから結果セットを返すための呼び出し。


パラメータ

stmt
手続き型のみ: mysqli_stmt_init() が返すステートメント ID。


返り値

SELECT クエリが成功した場合はその結果セットを返します。 その他の DML クエリを実行した場合や失敗した場合は false を返します。 その他の DML クエリを実行したのかクエリの実行に失敗したのかを区別するには、 mysqli_errno() 関数を使います。


MySQL ネイティブドライバ限定

mysqlnd でのみ使用可能です。


例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();?>

例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 

参考