0% encontró este documento útil (0 votos)
48 vistas21 páginas

Mysql

Este documento presenta cómo PHP puede conectarse a una base de datos MySQL y realizar consultas. Explica cómo abrir una conexión a la base de datos, seleccionar una base de datos, ejecutar consultas SQL, obtener y mostrar resultados, y cerrar la conexión de forma segura. También cubre temas básicos de seguridad como el uso de mysql_real_escape_string para filtrar datos de entrada del usuario.

Cargado por

Robert Chasse
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
48 vistas21 páginas

Mysql

Este documento presenta cómo PHP puede conectarse a una base de datos MySQL y realizar consultas. Explica cómo abrir una conexión a la base de datos, seleccionar una base de datos, ejecutar consultas SQL, obtener y mostrar resultados, y cerrar la conexión de forma segura. También cubre temas básicos de seguridad como el uso de mysql_real_escape_string para filtrar datos de entrada del usuario.

Cargado por

Robert Chasse
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 21

7-‐PHP y consultas MySQL

Curso: Desarrollo de aplicaciones Web

Cris*na Puente, Rafael Palacios

2010-‐2011
1

Introducción
Introducción
• PHP dispone de librerías para comunicarse con diversas bases
de datos:
– MySQL (OpenSource, la que vamos a u*lizar en este curso)
– DBM (Berkeley)
– Informix
– MS SQL (MicrosoP)
– Oracle 8
– PostgreSQL (Berkeley—open source)
– Sybase

Departamento de Sistemas InformáCcos Desarrollo de aplicaciones web


Escuela Técnica Superior de Ingeniería ICAI 2011 3
Introducción
• ¿cómo funciona?

GET prueba.php
Ejemplo de programa PHP
1. Abrir la conexión con el servidor de base de datos
2. Seleccionar la base de datos
3. Construir la query
4. Lanzar la query

5. Bucle para mostrar registro a registro

6. Cerrar la conexión
2

Abrir la conexión con la base de


datos
Conexión a la base de datos
• Instrucción mysql_connect(), junto con tres parámetros: host
al que nos conectamos, nombre de usuario y contraseña.
• En modo local (localhost = 127.0.0.1)

<?php
$conn = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$conn) {
die('Error de conexión');
}

/* Código aquí */

mysql_close($conn);
?>

Departamento de Sistemas InformáCcos Desarrollo de aplicaciones web


Escuela Técnica Superior de Ingeniería ICAI 2011 7
Conexión a la base de datos
• También es posible u*lizar variables y desarrollar funciones
<?php Acceso.php
function Conectar()
{
$host="localhost";
$user="mysql_user";
$pass="shhh";
$conn = mysql_connect($host,$user,$pass);
if (!$conn) {
die('Error de conexión');
}
return $conn;
}
Selección de la base de datos
• Los ficheros que accedan a la base de datos incluyen la
función.
<?php
include("acceso.php");

$conn=Conectar();
if (!mysql_select_db("prueba",$conn)) {
printf("ERROR: %s\n",mysql_error());
mysql_close($conn);
die("Error al cambiar de base de datos\n");
}
/* Código aquí */
mysql_close($conn);
3

Realizar queries
Ejemplo de consulta
• Una query se ejecuta con mysql_query. Se recomienda
comprobar el error.

$query="SELECT nombre, apellidos


FROM empleados
WHERE salario<10000;";

$result=mysql_query($query,$conn);
if (!$result) {
printf("Error en la query: ".mysql_error());
mysql_close($conn);
exit;
}

Departamento de Sistemas InformáCcos Desarrollo de aplicaciones web


Escuela Técnica Superior de Ingeniería ICAI 2011 11
Ejemplo de consulta
• mysql_fetch_array convierte el resultado de la query en un
array con toda la información de un registro.
• Los nombres de los elementos del array coinciden con los
u*lizados en la query

$row=mysql_fetch_array($result);
while ($row) {
printf("Nombre: {$row['nombre']} {$row['apellidos']}<br>");
$row=mysql_fetch_array($result);
}
mysql_free_result($result);

Departamento de Sistemas InformáCcos Desarrollo de aplicaciones web


Escuela Técnica Superior de Ingeniería ICAI 2011 12
Resumen de las funciones de acceso a MySQL
• mysql_connect() :Conectar con el servidor de bases de datos.
• mysql_select_db() :Seleccionar una base de datos.
• mysql_query() : Enviar la instrucción SQL a la base de datos.
• mysql_num_rows($result) : Obtener número de registros
• mysql_fetch_array($result) : Obtener datos
• mysql_free_result($result) : Libera memoria
• mysql_close() : Cerrar la conexión con el servidor.
• mysql_error() : Muestra el úl*mo mensaje de error
• mysql_real_escape_string() : Ob*ene cadena segura (ver más
adelante)
4

Formularios y aspectos básicos de


seguridad
Consulta basada en formulario
1. Diseñar página web u*lizando un editor HTML
2. Conver*r a PHP e insertar el código de acceso a datos
3. Obtener y proteger los datos del formulario
4. Construir la query
5. Generar la salida

Departamento de Sistemas InformáCcos Desarrollo de aplicaciones web


Escuela Técnica Superior de Ingeniería ICAI 2011 15
Archivo PHP

Código inicial HTML

Query PHP

Código final HTML

Departamento de Sistemas InformáCcos Desarrollo de aplicaciones web


Escuela Técnica Superior de Ingeniería ICAI 2011 16
Construcción de la query
if (isset($_GET['salary'])) {
$salary=mysql_real_escape_string($_GET['salary']); //important
$query='SELECT firstname, lastname, salary FROM users
WHERE salary>={$salary};';
} else {
/* No filter */
$query='SELECT firstname, lastname, salary FROM users;';
}

$result=mysql_query($query,$conn);
if (!$result) {
die('Query error '.mysql_error());
}

$row=mysql_fetch_array($result);
while ($row) {
printf("<tr>\n");
printf("<td>{$row['firstname']}</td><td>{$row['lastname']}</td>");
printf("<td>{$row['salary']}</td></tr>");
$row=mysql_fetch_array($result);
}
mysql_free_result($result);
Aspectos de seguridad
• ¿por qué es importante mysql_real_escape_string?

10000

query='SELECT name FROM users


W HERE salary<=10000;'

10000; drop table users;

query='SELECT name FROM users


WHERE salary<=10000; drop table users'
Escuela Técnica Superior de Ingeniería ICAI
Alberto Aguilera 25
28015 Madrid
Tel +34 91 542 28 00
Fax + 34 91 542 31 76
Iwww.icai.upcomillas.es
www.upcomillas.es

También podría gustarte