1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 08:22:08 +01:00
Files
archived-doc-es/reference/mysqli/examples.xml
Pedro Antonio Gil Rodríguez 3b41ba8a7e Traducción
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337730 c90b9560-bf6c-de11-be94-00142212c4b1
2015-09-03 10:14:46 +00:00

140 lines
5.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 47ce3a5932d99d63d526b278557d64f22b8703aa Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="mysqli.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<section xml:id="mysqli.examples-basic">
<title>Ejemplos básicos de la extensión MySQLi</title>
<para>
Este ejemplo muestra cómo conectarse, ejecutar una consulta, utilizar un manejo de
errores básico, imprimir filas de resultados, y desconectarse de una base de datos de MySQL.
</para>
<para>
Este ejemplo emplea la base de datos de libre disposición Sakila, la cual
puede descargarse desde <link xlink:href="&url.mysql.sakila;">dev.mysql.com,
tal como se describe aquí</link>. Para que este ejemplo funcione, (a) instalar sakila
y (b) modificar las variables de conexión (host, tu_usuario, tu_contraseña).
</para>
<example>
<title>Ejemplo resumen de la extensión MySQLi</title>
<programlisting role="php">
<![CDATA[
<?php
// Vamos a pasar una variable $_GET a nuestro ejemplo, en este caso es
// 'aid' para 'actor_id' de nuestra base de datos Sakila. Le vamos a asignar un
// valor predeterminado de 1, y a amoldarla a un integer para evitar inyecciones
// de SQL y/o problemas de seguridad relacionados. El manejo de todo esto va más
// allá del alcance de este sencillo ejemplo:
// http://example.org/script.php?aid=42
if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
$aid = (int) $_GET['aid'];
} else {
$aid = 1;
}
// Conectarse a y seleccionar una base de datos de MySQL llamada sakila
// Nombre de host: 127.0.0.1, nombre de usuario: tu_usuario, contraseña: tu_contraseña, bd: sakila
$mysqli = new mysqli('127.0.0.1', 'tu_usuario', 'tu_contraseña', 'sakila');
// ¡Oh, no! Existe un error 'connect_errno', fallando así el intento de conexión
if ($mysqli->connect_errno) {
// La conexión falló. ¿Que vamos a hacer?
// Se podría contactar con uno mismo (¿email?), registrar el error, mostrar una bonita página, etc.
// No se debe revelar información delicada
// Probemos esto:
echo "Lo sentimos, este sitio web está experimentando problemas.";
// Algo que no se debería de hacer en un sitio público, aunque este ejemplo lo mostrará
// de todas formas, es imprimir información relacionada con errores de MySQL -- se podría registrar
echo "Error: Fallo al conectarse a MySQL debido a: \n";
echo "Errno: " . $mysqli->connect_errno . "\n";
echo "Error: " . $mysqli->connect_error . "\n";
// Podría ser conveniente mostrar algo interesante, aunque nosotros simplemente saldremos
exit;
}
// Realizar una consulta SQL
$sql = "SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = $aid";
if (!$resultado = $mysqli->query($sql)) {
// ¡Oh, no! La consulta falló.
echo "Lo sentimos, este sitio web está experimentando problemas.";
// De nuevo, no hacer esto en un sitio público, aunque nosotros mostraremos
// cómo obtener información del error
echo "Error: La ejecución de la consulta falló debido a: \n";
echo "Query: " . $sql . "\n";
echo "Errno: " . $mysqli->errno . "\n";
echo "Error: " . $mysqli->error . "\n";
exit;
}
// ¡Uf, lo conseguimos!. Sabemos que nuestra conexión a MySQL y nuestra consulta
// tuvieron éxito, pero ¿tenemos un resultado?
if ($resultado->num_rows === 0) {
// ¡Oh, no ha filas! Unas veces es lo previsto, pero otras
// no. Nosotros decidimos. En este caso, ¿podría haber sido
// actor_id demasiado grande?
echo "Lo sentimos. No se pudo encontrar una coincidencia para el ID $aid. Inténtelo de nuevo.";
exit;
}
// Ahora, sabemos que existe solamente un único resultado en este ejemplo, por lo
// que vamos a colocarlo en un array asociativo donde las claves del mismo son los
// nombres de las columnas de la tabla
$actor = $resultado->fetch_assoc();
echo "A veces veo a " . $actor['first_name'] . " " . $actor['last_name'] . " en la TV.";
// Ahora, vamor a obtener cinco actores aleatorios y a imprimir sus nombres en una lista.
// El manejo de errores va a ser menor aquí, aunque ya sabemos como hacerlo
$sql = "SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5";
if (!$resultado = $mysqli->query($sql)) {
echo "Lo sentimos, este sitio web está experimentando problemas.";
exit;
}
// Imprimir nuestros cinco actores aleatorios en una lista, y enlazar cada uno
echo "<ul>\n";
while ($actor = $resultado->fetch_assoc()) {
echo "<li><a href='" . $_SERVER['SCRIPT_FILENAME'] . "?aid=" . $actor['actor_id'] . "'>\n";
echo $actor['first_name'] . ' ' . $actor['last_name'];
echo "</a></li>\n";
}
echo "</ul>\n";
// El script automáticamente liberará el resultado y cerrará la conexión
// a MySQL cuando finalice, aunque aquí lo vamos a hacer nostros mismos
$resultado->free();
$mysqli->close();
?>
]]>
</programlisting>
</example>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->