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
プリペアード・ステートメントから結果セットを返すための呼び出し。
返り値
SELECT クエリが成功した場合はその結果セットを返します。
その他の DML クエリを実行した場合や失敗した場合は false
を返します。
その他の DML クエリを実行したのかクエリの実行に失敗したのかを区別するには、
mysqli_errno() 関数を使います。
例
例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
参考
- mysqli_prepare() - 実行するための SQL ステートメントを準備する
- mysqli_stmt_result_metadata() - プリペアドステートメントから結果セットのメタデータを返す
- mysqli_stmt_fetch() - プリペアドステートメントから結果を取得し、バインド変数に格納する
- mysqli_fetch_array() - 結果の行を連想配列・数値添字配列あるいはその両方の形式で取得する
- mysqli_stmt_store_result() - プリペアドステートメントから結果を転送する
- mysqli_errno() - 直近の関数コールによるエラーコードを返す