mirror of
https://github.com/php/doc-es.git
synced 2026-03-26 08:22:08 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337730 c90b9560-bf6c-de11-be94-00142212c4b1
140 lines
5.4 KiB
XML
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
|
|
-->
|
|
|