Programación de Bases de Datos con PHP y MySQL
ISTTA - CUSCO
PHP: la herramienta para el desarrollo WEB
Herramientas Web Forms
Herramientas Web Forms
Proceso de errores
Acceso a datos
Lenguaje
PHP-POO
Herramientas Servicios Web
Desarrollar Depurar ImplantarDiseñar
Funcionamiento de las arquitecturas de base de datos Web
Una de las aplicaciones más útiles de PHP es la posibilidad de conectarse a una base de datos de MySQL
El navegador web de un usuario envía una petición http solicitando una
página web dada, que se almacena p.ej. en results.php El servidor web recibe la petición de results.php, recupera los datos y lo pasa
al motor de php para su procesamiento. El motor php comienza a analizar la secuencia de comandos, dentro del cual
hay un comando que establece la conexión a la base de datos y ejecuta una consulta (query). PHP abre una conexión al servidor MySQL y remite la consulta pertinente.
El servidor MySQL recibe la consulta de la BD y la procesa. A continuación envía, los resultados al motor de PHP
El motor de PHP termina de ejecutar la secuencia de comandos, lo que suele implicar la aplicación de formato a los resultados en HTML. Seguidamente devuelve el código HTML resultante al servidor web.
El servidor web devuelve el código HTML, al navegador donde el usuario puede ver los resultados de su consulta o petición.
DESARROLLO WEB
Herramientas del desarrollador
Clientes
Experiencias del usuario
Aplicaciones Web PHP
Servicios Web XML
Bases de datos
Motor PHP
Aplicación Web PHP
Datos XML
Base de datos
InternetInternet
Page1.php
Page2.php
ServiciosWeb
ServiciosWeb ComponentesComponentes
Web Forms
Páginas código trasero
Web.config
machine.config
Servidor Web PHP
Cac
hé d
e Sa
lida
Clientes
Seguridad MySQL
ClienteCliente
Enviar el nombre de usuario y contraseña
en texto claro.
No enviar el nombre de usuario y contraseña.
Enviar sólo que el usuario ha sido
autenticado.
Autenticaciónmodo mixto
Autenticaciónmodo mixto
Autenticaciónsólo WindowsAutenticaciónsólo Windows
Servidor MySQL Sólo la cuenta PHP tiene
concedido acceso
Servidor MySQL Sólo la cuenta PHP tiene
concedido acceso
Servidor Web Autenticación Windows
Servidor Web Autenticación Windows
o…o…
Servidor MySQL Cada cuenta de usuario se
agrega a grupo login de MySQL
Servidor MySQL Cada cuenta de usuario se
agrega a grupo login de MySQL
Servidor Web Configuración PHP
predeterminada
Servidor Web Configuración PHP
predeterminada
Aquí está el nombre de usuario y la contraseña
CREAR LA CONEXIÓN
Uso de la función mysql_connect()
SINTAXIS <?php $conexion = mysql_connect([nombre_servidor], [nombre_usuario], [password]);
?>
<?php $conexion = mysql_connect(‘localhost’, ‘root’, ‘root’);
?>
Ejemplo
Establecer los parámetros de conexión
Uso de la función mysql_connect()
<?php$dbhost = 'localhost';$dbuser = 'root';$dbpass = 'root';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error de conección a mysql');
?>
Con Nombre de servidor y Nro. de Puerto
<?php
$dbhost = 'db.istta.net:3306'; $dbuser = 'root'; $dbpass = 'root';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or
die ('Error en la conexión a mysql');
?>
Seleccionar la base de datosUna vez establecida la conexión, debemos seleccionar la base de
datos que utilizaremos:
Uso de la función mysql_select_db()
<?php$dbhost = 'localhost';$dbuser = 'root';$dbpass = 'root';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error de conección a mysql');$dbname = 'dbventas';mysql_select_db($dbname);
?>
<?php $conexion = mysql_connect('localhost', 'root', 'root'); if (!$conexion)
print mysql_error(); else { mysql_select_db('DBVentas', $conexion); } ?>
Otra forma de implementar la seleccion de la base de datos
CERRAR LA CONEXIÓN
<?php// cerrar la conexión a la BD MySQL
mysql_close($conexion);?>
Una vez establecida la conexión y seleccionada la base de datos, el siguiente paso es realizar consultas a la BD.
ENVIO DE CONSULTAS (Query)
Uso de la función mysql_query() <?php $conexion = mysql_connect('localhost', 'root', ‘root'); if (!$conexion) print mysql_error(); else {
mysql_select_db("base_de_datos", $conexion); mysql_query("UPDATE usuarios SET nombre=‘Mariana' WHERE nombre=‘Margarita'", $conexion);
}
?>
config.php
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Documento sin título</title></head><body>
<?php// Este es un ejemplo de config.php
$dbhost = 'localhost';$dbuser = 'root';$dbpass = 'root';$dbname = ‘dbVentas';
?></body></html>
opendb.php
<html"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Libreria para abrir la base de datos</title></head>
<body><?php//opendb.php //Ejemplo de opendb.php$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error de
conección a mysql');mysql_select_db($dbname);?>
</body></html>
closedb.php
<html><head><title>Cerrar la conexión al servidor de la base de datos</title></head>
<body><?php// un ejemplo de closedb.php
mysql_close($conn);?>
</body></html>
createdb.php
<html><head><title>Crear base de datos </title></head>
<body><?phpinclude 'config.php';include 'opendb.php';
mysql_create_db('dbLibreria');
include 'closedb.php';?>
</body></html>
ConexionMySQL.php<html><head><title>Conexión al servidor de la base de datos</title></head>
<body><?php$dbhost = 'localhost';$dbuser = 'root';$dbpass = 'root';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error de conexión a mysql');
print "Conexión correcta con el servidor. <br>";$dbname = 'dbventas';mysql_select_db($dbname);print "Selección de la base de datos adecuada <br>";mysql_close($conn);print "Conexión a la base de datos cerrada <br>";?>
</body></html>
<?php $nombre_servidor='localhost'; $nombre_usuario='root'; $password='root'; $conexion = mysql_connect($nombre_servidor, $nombre_usuario, $password)
or die ("Error de conexión"); print 'Conexion Satisfactoria'; print "<br> "; mysql_select_db(“dbVentas",$conexion) or die ("Error en la seleccion de la base de datos"); print 'Base de datos dbVentgas seleccionado'; print "<br> "; mysql_query("insert into usuarios (nombre, clave) values (‘Rita','nihhonga·%&per')", conexion) or die ("error en la consulta query".mysql_error()); print "consulta satisfactoria"; mysql_close($conexion);?>
Ejemplo: Tabla usuarios campos(nombre, clave)
Createcontact.php
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Documento sin título</title></head>
<body><?phpinclude 'config.php';include 'opendb.php';
mysql_select_db('dbventas') or die(‘ no se puede seleccionar la base de datos');
$query = 'CREATE TABLE usuarios( '.'uid INT NOT NULL AUTO_INCREMENT, '.'unombre VARCHAR(20) NOT NULL, '.'uclave VARCHAR(20) NOT NULL, '.
'PRIMARY KEY(uid))';$result = mysql_query($query);print "Todo esta correcto con la creación de la tabla usuarios en la bd dbventas";include 'closedb.php';?> </body></html>
Cuando se trabaja con consultas que no regresan resultados, lo único que retornará será true en caso de que la consulta se ejecutó y false si la consulta es errónea. Cuando se necesita saber si una consulta de este tipo cambió algún dato se puede utilizar la función : mysql_affected_rows():
<?php $conexion = mysql_connect('localhost', 'root', ‘root'); if (!$conexion) print mysql_error(); else { mysql_select_db(“dbVentas", $conexion); mysql_query("UPDATE usuarios SET nombre=‘Mariana' WHERE
nombre=‘Margarita'", $conexion); if (mysql_affected_rows($conexion))
print "Se cambio el nombre de usuario<br>"; else print "No pudo cambiarse el nombre de usuario<br>"; } ?>