Publicado el 14 de Enero del 2017
1.421 visualizaciones desde el 14 de Enero del 2017
389,2 KB
19 paginas
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
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
3
Introducción
• ¿cómo
funciona?
GET prueba.php
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
4
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
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
5
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
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
7
Conexión
a
la
base
de
datos
• También
es
posible
u*lizar
variables
y
desarrollar
funciones
<?php
function Conectar()
Acceso.php
{
}
$host="localhost";
$user="mysql_user";
$pass="shhh";
$conn = mysql_connect($host,$user,$pass);
if (!$conn) {
die('Error de conexión');
}
return $conn;
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
8
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);
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
9
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
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
11
Ejemplo
de
consulta
• mysql_fetch_array
convierte
el
resultado
de
la
query
en
un
u*lizados
en
la
query
array
con
toda
la
información
de
un
registro.
• Los
nombres
de
los
elementos
del
array
coinciden
con
los
$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
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
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)
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
13
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
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
15
Archivo
PHP
Código inicial HTML
Query PHP
Código final HTML
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
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);
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
17
Aspectos
de
seguridad
• ¿por
qué
es
importante
mysql_real_escape_string?
10000
query='SELECT name FROM users
WHERE salary<=10000;'
10000; drop table users;
query='SELECT name FROM users
WHERE salary<=10000; drop table users'
Departamento
de
Sistemas
InformáCcos
Escuela
Técnica
Superior
de
Ingeniería
ICAI
Desarrollo
de
aplicaciones
web
2011
18
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
Comentarios de: 7-PHP y consultas MySQL (0)
No hay comentarios