(PHP 5 >= 5.3.0, PHP 7)
mysqli_stmt::get_result -- mysqli_stmt_get_result — Obtiene un conjunto de resultados de una sentencia preparada
Estilo orientado a objetos
Estilo por procedimientos
Es llamada para devolver un conjunto de resultados de una consulta de sentencia preparada.
stmt
Sólo estilo por procediminetos: Un identificador de declaraciones devuelto por mysqli_stmt_init().
Devuelve un conjunto de resultados para consultas SELECT select, o FALSE
para otras consultas
DML o en caso de fallo. La función mysqli_errno() se puede
emplear para distinguir entre dos tipos de fallo.
Disponible sólo con mysqlnd.
Ejemplo #1 Estilo orientado a objetos
<?php
$mysqli = new mysqli("127.0.0.1", "usuario", "contraseña", "world");
if($mysqli->connect_error)
{
die("$mysqli->connect_errno: $mysqli->connect_error");
}
$consulta = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";
$sentencia = $mysqli->stmt_init();
if(!$sentencia->prepare($consulta))
{
print "Falló la preparación de la sentencia\n";
}
else
{
$sentencia->bind_param("s", $continente);
$array_continentes = array('Europe','Africa','Asia','North America');
foreach($array_continentes as $continente)
{
$sentencia->execute();
$resultado = $sentencia->get_result();
while ($fila = $resultado->fetch_array(MYSQLI_NUM))
{
foreach ($fila as $f)
{
print "$f ";
}
print "\n";
}
}
}
$sentencia->close();
$mysqli->close();
?>
Ejemplo #2 Estilo por procedimientos
<?php
$enlace = mysqli_connect("127.0.0.1", "usuario", "contraseña", "world");
if (!$enlace)
{
$error = mysqli_connect_error();
$errno = mysqli_connect_errno();
print "$errno: $error\n";
exit();
}
$consulta = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";
$sentencia = mysqli_stmt_init($enlace);
if(!mysqli_stmt_prepare($sentencia, $consulta))
{
print "Falló la preparación de la sentencia\n";
}
else
{
mysqli_stmt_bind_param($stmt, "s", $continente);
$array_continentes = array('Europe','Africa','Asia','North America');
foreach($array_continentes as $continente)
{
mysqli_stmt_execute($sentencia);
$resultado = mysqli_stmt_get_result($sentencia);
while ($fila = mysqli_fetch_array($resultado, MYSQLI_NUM))
{
foreach ($fila as $f)
{
print "$f ";
}
print "\n";
}
}
}
mysqli_stmt_close($sentencia);
mysqli_close($enlace);
?>
El resultado de los ejemplos sería:
Albania 3401200 Europe Algeria 31471000 Africa Afghanistan 22720000 Asia Anguilla 8000 North America