mysqli_stmt::get_result
mysqli_stmt_get_result
(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
Descrição
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.
Note:
Disponível apenas com o mysqlnd.
Note:
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.
Parâmetros
-
statement
Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().
Valor Retornado
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.
Erros/Exceções
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.
Exemplos
Example #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";
}
}
Example #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
Veja Também
- mysqli_prepare() - Prepara uma instrução SQL para execução
- mysqli_stmt_result_metadata() - Retorna os metadados de resultado de uma instrução preparada
- mysqli_stmt_fetch() - Recebe resultados de uma instrução preparada nas variáveis vinculadas
- mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
- mysqli_stmt_store_result() - Armazena um conjunto de resultados em um buffer interno