(PHP 5 >= 5.3.0, PHP 7, PHP 8)
mysqli_stmt::get_result -- mysqli_stmt_get_result — Obtém um resultado de uma instrução preparada como um objeto mysqli_result
Estilo orientado a objetos
Estilo procedural
Recebe um resultado de uma instrução preparada como um objeto mysqli_result. Os dados serão transportados do servidor MySQL para o PHP. Este método deve ser chamado somente para consultas que produzem um conjunto de resultados.
Nota:
Disponível apenas com o mysqlnd.
Nota:
Esta função não pode ser usada junto com a função mysqli_stmt_store_result(). Ambas estas funções recebem o conjunto completo de resultados do servidor MySQL.
statement
Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().
Retorna false
em caso de falha. Para consultas bem sucedidas que produzem um resultado, como SELECT, SHOW, DESCRIBE
ou
EXPLAIN
, mysqli_stmt_get_result() retornará
um objeto mysqli_result. Para outras consultas bem sucedidas, mysqli_stmt_get_result()
retornará false
. A função mysqli_stmt_errno() pode ser
usada para distinguir entre os dois motivos para false
; devido a um problema de software, antes do PHP 7.4.13,
mysqli_errno() tinha de ser usada para este propósito.
Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR
) e a operação solicitada falhar,
um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT
,
uma exceção mysqli_sql_exception será lançada em vez do aviso.
Exemplo #1 Estilo orientado a objetos
<?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";
}
}
Exemplo #2 Estilo 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";
}
}
Os exemplos acima produzirão algo semelhante a:
Albania 3401200 Europe Algeria 31471000 Africa Afghanistan 22720000 Asia Anguilla 8000 North America