
La forma más inmediata de ejecutar una consulta, si utilizas esta extensión, es el método query
, equivalente a la función mysqli_query
. Si se ejecuta una consulta de acción que no devuelve datos (como una sentencia SQL de tipo UPDATE
, INSERT
o DELETE
), la llamada devuelve true si se ejecuta correctamente o false en caso contrario. El número de registros afectados se puede obtener con la propiedad affected_rows
(o con la función mysqli_affected_rows
).
@$conProyecto = new mysqli('localhost', 'gestor', 'secreto', 'proyecto');
$error = $conProyecto->connect_errno;
if ($error == null) {
$resultado = $conProyecto->query('DELETE FROM stock WHERE unidades=0');
if ($resultado) {
echo "<p>Se han borrado $conProyecto->affected_rows registros.</p>";
}
$conProyecto->close(); //cerramos la conexion
}
En el caso de ejecutar una sentencia SQL que sí devuelva datos (como un SELECT
), éstos se devuelven en forma de un objeto resultado (de la clase "mysqli_result
"). En el punto siguiente verás cómo se pueden manejar los resultados obtenidos.
El método "query()"
tiene un parámetro opcional que afecta a cómo se obtienen internamente los resultados, pero no a la forma de utilizarlos posteriormente. En la opción por defecto, MYSQLI_STORE_RESULT
, los resultados se recuperan todos juntos de la base de datos y se almacenan de forma local. Si cambiamos esta opción por el valor MYSQLI_USE_RESULT
, los datos se van recuperando del servidor según se vayan necesitando.
$resultado = $conProyecto->query('SELECT producto, unidades FROM stock', MYSQLI_USE_RESULT);