View
268
Download
1
Category
Preview:
DESCRIPTION
Mysql - php
Citation preview
PHP – Nivel I – Clase 6PHP – Nivel I – Clase 6
Prof. Cristian Sanchez FloresProf. Cristian Sanchez Flores
MySQLMySQL
Que es MySQL…???Que es MySQL…???
MySQL es la base de datos de codigo abierto más popular del mundo. MySQL es un sistema de administración de base de datos relacional. Se trata de un programa capaz de almacenar una enorme cantidad de datos de gran variedad y de distribuirlos para cubrir las necesidades de cualquier tipo de organización.
MySQL es la base de datos de codigo abierto más popular del mundo. MySQL es un sistema de administración de base de datos relacional. Se trata de un programa capaz de almacenar una enorme cantidad de datos de gran variedad y de distribuirlos para cubrir las necesidades de cualquier tipo de organización.
Codigo AbiertoCodigo Abierto
Codigo abierto significa que es posible que pueda ser usado y modificado por cualquiera. Alguien puede bajar MySQL desde Internet y usar éste sin tener que pagar nada. Alguien puede estudiar el código fuente y cambiarlo de acuerdo a sus necesidades. MySQL usa el GPL de la GNU, para definir lo que se puede hacer con el software en diferentes situaciones.
Codigo abierto significa que es posible que pueda ser usado y modificado por cualquiera. Alguien puede bajar MySQL desde Internet y usar éste sin tener que pagar nada. Alguien puede estudiar el código fuente y cambiarlo de acuerdo a sus necesidades. MySQL usa el GPL de la GNU, para definir lo que se puede hacer con el software en diferentes situaciones.
Que es una Base de DatosQue es una Base de Datos
Una Base de Datos, en su definicion mas sencilla, es una colección de archivos relacionados.
Una Base de Datos, en su definicion mas sencilla, es una colección de archivos relacionados.
Instalación MySQLInstalación MySQL
Prof. Cristian Sanchez FloresProf. Cristian Sanchez Flores
Instalar MySQLInstalar MySQLDescargar los archivos necesarios, descomprima el archivo zip MySQL en un directorio TemporalEjecutar el programa Setup.exe, el instalador es un asistente InstallShiedlSeleccionar Instalación TipicaEspecificar donde quiere Instalar MySQL, aunque se recomienda que sea en c:\mysql
Descargar los archivos necesarios, descomprima el archivo zip MySQL en un directorio TemporalEjecutar el programa Setup.exe, el instalador es un asistente InstallShiedlSeleccionar Instalación TipicaEspecificar donde quiere Instalar MySQL, aunque se recomienda que sea en c:\mysql
Configurar Servicios de MySQLConfigurar Servicios de MySQL
Pude instalar el servidor MySQL como servicio si escribe lo siguiente en la linea de comandos de Windows:
cd c:\mysql\bin mysqld-nt –install
Obtendra la siguiente respuesta
Service successfully installed
Pude instalar el servidor MySQL como servicio si escribe lo siguiente en la linea de comandos de Windows:
cd c:\mysql\bin mysqld-nt –install
Obtendra la siguiente respuesta
Service successfully installed
Iniciando Servicios de MySQLIniciando Servicios de MySQL
Ya puede iniciar y detener el servicio MySQL desde la linea de comandos con:
NET START mysqlNET STOP mysql
Ya puede iniciar y detener el servicio MySQL desde la linea de comandos con:
NET START mysqlNET STOP mysql
Servicios de MySQLServicios de MySQL
Comprobando su FuncionalidadComprobando su Funcionalidad• Para probar si MySQL funciona o no,
puede ejecutar el siguiente comando:
c:\mysql\binn\mysqlshow
• Para probar si MySQL funciona o no, puede ejecutar el siguiente comando:
c:\mysql\binn\mysqlshow
Conexión a Una Base de DatosConexión a Una Base de Datos
El equipo en el que se ejecuta MySQL y que almacena los datos se denomina Servidor MySQL. Para establecer una conexión a este servidor, tipeamos desde prompt lo siguiente:
C:\mysql\bin\mysql –u root -p
El equipo en el que se ejecuta MySQL y que almacena los datos se denomina Servidor MySQL. Para establecer una conexión a este servidor, tipeamos desde prompt lo siguiente:
C:\mysql\bin\mysql –u root -p
ConexionConexion
Cambiar ContraseñaCambiar Contraseña
Necesitamos cambiar la contraseña del administrador que por defecto es vacia para ello tipeamos lo siguiente:
mysql> SET PASSWORD=PASSWORD(‘uni’);
Necesitamos cambiar la contraseña del administrador que por defecto es vacia para ello tipeamos lo siguiente:
mysql> SET PASSWORD=PASSWORD(‘uni’);
Cambiar ContraseñaCambiar Contraseña
Creando Base de DatosCreando Base de Datos
Asocioando Usuario a BDAsocioando Usuario a BD
Conexión con el Usuario SistemaConexión con el Usuario Sistema
Creando TablasCreando Tablas
Creando TablasCreando Tablas
Show TablesShow Tables
DescribeDescribe
Privilegios de MySQLPrivilegios de MySQL
Una de las mejores funciones de MySQL es su avanzado sistema de privilegios.Un privilegio es el derecho a realizar una accion dada sobre un determinado objeto y se asocia a un usuario concreto.Al crear un usuario dentro de MySQL se le concede un conjunto de privilegios en los que se especifica lo que puede y no puede hacer dentro del sistema.
Una de las mejores funciones de MySQL es su avanzado sistema de privilegios.Un privilegio es el derecho a realizar una accion dada sobre un determinado objeto y se asocia a un usuario concreto.Al crear un usuario dentro de MySQL se le concede un conjunto de privilegios en los que se especifica lo que puede y no puede hacer dentro del sistema.
Privilegios MySQLPrivilegios MySQL
Los comandos GRANT y REVOKE se utiliza para conceder y retirar los derechos a los usuarios de MySQL en 4 niveles de privilegios, que son:1. Global2. Base de Datos.3. Tabla.4. Columna
Los comandos GRANT y REVOKE se utiliza para conceder y retirar los derechos a los usuarios de MySQL en 4 niveles de privilegios, que son:1. Global2. Base de Datos.3. Tabla.4. Columna
Comando GRANTComando GRANT
El Comando GRANT se utiliza para crear usuarios y concederle los privilegios.Sintaxis
GRANT privilegios [columna]ON elementoTO nom_usuario [IDENTIFIED BY ‘contrase’]
El Comando GRANT se utiliza para crear usuarios y concederle los privilegios.Sintaxis
GRANT privilegios [columna]ON elementoTO nom_usuario [IDENTIFIED BY ‘contrase’]
Tipos de PrivilegiosTipos de Privilegios
Privilegio Aplicable aSELECT Tablas, columnasINSERT Tablas, columnasUPDATE Tablas, columnasDELETE TablasINDEX TablasALTER TablasCREATE Base de Datos y
TablasDROP Base de Datos y
Tablas
Comando REVOKEComando REVOKE
Este comando es opuesto al comando GRANT, se utiliza para quitar privilegios de un usuario.Sintaxis
REVOKE privilegios ([columnas])ON elementoFROM nombre_usuario
Este comando es opuesto al comando GRANT, se utiliza para quitar privilegios de un usuario.Sintaxis
REVOKE privilegios ([columnas])ON elementoFROM nombre_usuario
EjemplosEjemplos
Para configurar un administrador:
mysql> grant all -> on *
-> to coco identified by ‘uni’
-> with grant option ;
Para configurar un administrador:
mysql> grant all -> on *
-> to coco identified by ‘uni’
-> with grant option ;
EjemplosEjemplos
EjemplosEjemplos
Ahora vamos a crear una Base de Datos llamada LibrosAhora vamos a crear una Base de Datos llamada Libros
mysql> create database Libros;
EjemplosEjemplos
EjemplosEjemplosSeguidamente vamos a crear un usuario Pablo sin privilegiosSeguidamente vamos a crear un usuario Pablo sin privilegios
Ejemplos Ejemplos Ahora le concedemos los privilegios adecuadosAhora le concedemos los privilegios adecuados
Ejemplo Ejemplo Ahora podemos reducir sus privilegiosAhora podemos reducir sus privilegios
EjemploEjemploAhora si ya no necesito que ese usuario no utilice la Base de DatosAhora si ya no necesito que ese usuario no utilice la Base de Datos
EjemploEjemploAhora vamos a crear un usuario para nuestra pagina WebAhora vamos a crear un usuario para nuestra pagina Web
Ejemplo - LibrosEjemplo - LibrosConetarse a la Base de Datos LibrosConetarse a la Base de Datos Libros
Creando TablasCreando TablasTenemos un archivo libros.sql cargamos la estructuraTenemos un archivo libros.sql cargamos la estructura
InsercionInsercion
InsercionInsercion
Insertando LibrosInsertando Libros
Visualizando RegistrosVisualizando Registros
Visualizando RegistrosVisualizando Registros
OperadoresOperadores
= > <
>= <= !=
IS NOT NULL IS NULL BETWEEN
IN NOT IN LIKE
NOT LIKE
Combinaciones 2 TablasCombinaciones 2 Tablas
Combinando TablasCombinando Tablas
select customers.customerid, customers.name,
orders.orderidfrom customers inner join orderson customers.customerid = orders.customerid;
select customers.customerid, customers.name,
orders.orderidfrom customers inner join orderson customers.customerid = orders.customerid;
Combinando TablasCombinando Tablas
select c.customerid, c.name, o.orderidfrom customers as c, orders owhere c.customerid =
o.customerid;
select c.customerid, c.name, o.orderidfrom customers as c, orders owhere c.customerid =
o.customerid;
Demo – Buscar.htmlDemo – Buscar.html<html>
<head> <title>Book-O-Rama Catalogo Busqueda</title></head><body> <h1>Book-O-Rama Catalogo Busqueda</h1> <form action="resultado.php" method="post"> Escoja el Tipo de Busqueda:<br /> <select name="tipobusqueda"> <option value="author">Author</option> <option value="title">Titulo</option> <option value="isbn">Codigo</option> </select> <br /> Ingrese Texto de Busqueda:<br /> <input name="buscatext" type="text" size="20"> <br /> <input type="submit" value="Buscar"> </form></body>
</html>
<html><head> <title>Book-O-Rama Catalogo Busqueda</title></head><body> <h1>Book-O-Rama Catalogo Busqueda</h1> <form action="resultado.php" method="post"> Escoja el Tipo de Busqueda:<br /> <select name="tipobusqueda"> <option value="author">Author</option> <option value="title">Titulo</option> <option value="isbn">Codigo</option> </select> <br /> Ingrese Texto de Busqueda:<br /> <input name="buscatext" type="text" size="20"> <br /> <input type="submit" value="Buscar"> </form></body>
</html>
Consultar una Base de Datos desde la WebConsultar una Base de Datos desde la Web
Para realizar una consulta desde la web se sigue los siguientes pasos:
1. Comprobar y filtrar los datos procedentes del usuario.
2. Configurar una conexión a la Base de Datos pertinente.
3. Consultar la Base de Datos.4. Recuperar los Resultados.5. Presentar los resultados al usuario.
Para realizar una consulta desde la web se sigue los siguientes pasos:
1. Comprobar y filtrar los datos procedentes del usuario.
2. Configurar una conexión a la Base de Datos pertinente.
3. Consultar la Base de Datos.4. Recuperar los Resultados.5. Presentar los resultados al usuario.
Comprobar y Filtrar Datos EntrantesComprobar y Filtrar Datos Entrantes
En primer lugar vamos a eliminar los espacios en blanco que pudiera haber introducido el usuario de manera involuntaria al principio y al final del termino de busqueda.
$buscatext= trim($buscatext);
En primer lugar vamos a eliminar los espacios en blanco que pudiera haber introducido el usuario de manera involuntaria al principio y al final del termino de busqueda.
$buscatext= trim($buscatext);
Comprobar y Filtrar Datos EntrantesComprobar y Filtrar Datos Entrantes
Ahora tenemos que verificar que el usuario ha introducido un texto de busqueda y un tipo de busqueda.
if (!$busquedatipo || !$buscatext) {
echo 'Usted tiene que ingresar y escoger en Busqueda.';
exit; }
Ahora tenemos que verificar que el usuario ha introducido un texto de busqueda y un tipo de busqueda.
if (!$busquedatipo || !$buscatext) {
echo 'Usted tiene que ingresar y escoger en Busqueda.';
exit; }
Configurar una ConexionConfigurar una Conexion
Para establecer la Conexión a La base de Datos podemos utilizar cualquier de las 2 instrucciones:
@ $db = new mysqli('localhost', 'root', 'uni', 'libros');
@ $db = mysqli_connect('localhost', 'root', 'uni', 'libros');
Para establecer la Conexión a La base de Datos podemos utilizar cualquier de las 2 instrucciones:
@ $db = new mysqli('localhost', 'root', 'uni', 'libros');
@ $db = mysqli_connect('localhost', 'root', 'uni', 'libros');
Configurar una ConexionConfigurar una Conexion
Ahora vamos a comprobar si la coneccion se ha realizado con éxito para ello utilizaremos lo siguiente:
if (mysqli_connect_errno()) {
echo 'Error: No puede conectarse a la Base de Datos.';
exit; }
Ahora vamos a comprobar si la coneccion se ha realizado con éxito para ello utilizaremos lo siguiente:
if (mysqli_connect_errno()) {
echo 'Error: No puede conectarse a la Base de Datos.';
exit; }
Consultar una Base de DatosConsultar una Base de Datos
Para realizar la consulta primero vamos a almacenar la instrucción de la consulta en una variable.
$query = "select * from books where ".$tipobusqueda." like '%".$buscatext."%'“ ;
Para realizar la consulta primero vamos a almacenar la instrucción de la consulta en una variable.
$query = "select * from books where ".$tipobusqueda." like '%".$buscatext."%'“ ;
Consultar una Base de DatosConsultar una Base de Datos
Ahora procedemos a ejecutar la consulta la podemos realizar de 2 maneras:
$result = $db->query($query);
$result = mysqli_query($db, $query);
Ahora procedemos a ejecutar la consulta la podemos realizar de 2 maneras:
$result = $db->query($query);
$result = mysqli_query($db, $query);
Recuperar Resultados de ConsultaRecuperar Resultados de Consulta
Ahora si deseamos que nos muestre la cantidad de registros devueltos, hay 2 formas:
$num_results = $result->num_rows;
$num_results = mysqli_num_rows($result);
Ahora si deseamos que nos muestre la cantidad de registros devueltos, hay 2 formas:
$num_results = $result->num_rows;
$num_results = mysqli_num_rows($result);
Recuperar Resultados de ConsultaRecuperar Resultados de Consulta
Ahora como sabemos cuando registros existen en este query, podemos trabajarlo con un bucle.for ($i=0; $i <$num_results; $i++) {
// procese los resultados
}
Ahora como sabemos cuando registros existen en este query, podemos trabajarlo con un bucle.for ($i=0; $i <$num_results; $i++) {
// procese los resultados
}
Recuperar Resultados de ConsultaRecuperar Resultados de Consulta
Ahora para leer la información se utiliza la funcion fetch_assoc() o mysqli_fetch_assoc(), esta funcion toma cada fila del conjunto de resultados y devuelve la fila como una matriz, con cada clave en forma de nombre de atributo y cada valor con su valor correspondiente en la matriz.
Ahora para leer la información se utiliza la funcion fetch_assoc() o mysqli_fetch_assoc(), esta funcion toma cada fila del conjunto de resultados y devuelve la fila como una matriz, con cada clave en forma de nombre de atributo y cada valor con su valor correspondiente en la matriz.
Recuperar Resultados de ConsultaRecuperar Resultados de Consulta
Para ello vamos a utilizar cualquiera de las 2 formas
$row = $result->fetch_assoc();
$row = mysqli_fetch_assoc($result);
Para ello vamos a utilizar cualquiera de las 2 formas
$row = $result->fetch_assoc();
$row = mysqli_fetch_assoc($result);
Recuperar Resultados de ConsultaRecuperar Resultados de Consulta
Dada la matriz asociativa $row, podemos recorrer cada campo y mostrarlos adecuadamente.Para ello vamos a utilizar una funcion llamada stripslashes(), para limpiar el valos antes de mostrarlo.
Dada la matriz asociativa $row, podemos recorrer cada campo y mostrarlos adecuadamente.Para ello vamos a utilizar una funcion llamada stripslashes(), para limpiar el valos antes de mostrarlo.
Recuperar Resultados de ConsultaRecuperar Resultados de Consultaecho '<p><strong>'.($i+1).'. Titulo: ';echo stripslashes($row['title']);echo '</strong><br />Autor: ';echo stripslashes($row['author']);echo '<br />Codigo: ';echo stripslashes($row['isbn']);echo '<br />Precio: ';echo stripslashes($row['price']);echo '</p>';
echo '<p><strong>'.($i+1).'. Titulo: ';echo stripslashes($row['title']);echo '</strong><br />Autor: ';echo stripslashes($row['author']);echo '<br />Codigo: ';echo stripslashes($row['isbn']);echo '<br />Precio: ';echo stripslashes($row['price']);echo '</p>';
Desconectar un Base de DatosDesconectar un Base de Datos
Para liberar un conjunto de resultados se invoca a cualquieral de las siguientes lineas:
$result->free();
mysqli_free_result($result);
Para liberar un conjunto de resultados se invoca a cualquieral de las siguientes lineas:
$result->free();
mysqli_free_result($result);
Desconectar un Base de DatosDesconectar un Base de Datos
Seguidamente se procede a desconectar o cerrar la conexión a la base de datos, para ello puede ser cualquiera de las 2 formas
$db->close();
mysqli_close($db);
Seguidamente se procede a desconectar o cerrar la conexión a la base de datos, para ello puede ser cualquiera de las 2 formas
$db->close();
mysqli_close($db);
Demo – Resultado.phpDemo – Resultado.php<html><head> <title>Book-O-Rama Resultado de Busqueda</title></head><body><h1>Book-O-Rama Resultado de Busqueda</h1><?php $tipobusqueda=$_POST['tipobusqueda']; $buscatext=$_POST['buscatext']; $buscatext= trim($buscatext); if (!$tipobusqueda || !$buscatext) { echo 'Usted tiene que ingresar y escoger en Busqueda.'; exit; } @ $db = new mysqli('localhost', 'root', 'uni', 'libros'); if (mysqli_connect_errno()) { echo 'Error: No puede conectarse a la Base de Datos.'; exit; } $query = "select * from books where ".$tipobusqueda." like '%".$buscatext."%'";/* $result = $db->query($query); $num_results = $result->num_rows;*/$result = mysqli_query($db, $query); $num_results = mysqli_num_rows($result); echo '<p>Numero de Libros Encontrados: '.$num_results.'</p>'; for ($i=0; $i <$num_results; $i++) { $row = $result->fetch_assoc(); echo '<p><strong>'.($i+1).'. Titulo: '; echo stripslashes($row['title']); echo '</strong><br />Autor: '; echo stripslashes($row['author']); echo '<br />Codigo: '; echo stripslashes($row['isbn']); echo '<br />Precio: '; echo stripslashes($row['price']); echo '</p>'; } $result->free(); $db->close(); ?></body></html>
<html><head> <title>Book-O-Rama Resultado de Busqueda</title></head><body><h1>Book-O-Rama Resultado de Busqueda</h1><?php $tipobusqueda=$_POST['tipobusqueda']; $buscatext=$_POST['buscatext']; $buscatext= trim($buscatext); if (!$tipobusqueda || !$buscatext) { echo 'Usted tiene que ingresar y escoger en Busqueda.'; exit; } @ $db = new mysqli('localhost', 'root', 'uni', 'libros'); if (mysqli_connect_errno()) { echo 'Error: No puede conectarse a la Base de Datos.'; exit; } $query = "select * from books where ".$tipobusqueda." like '%".$buscatext."%'";/* $result = $db->query($query); $num_results = $result->num_rows;*/$result = mysqli_query($db, $query); $num_results = mysqli_num_rows($result); echo '<p>Numero de Libros Encontrados: '.$num_results.'</p>'; for ($i=0; $i <$num_results; $i++) { $row = $result->fetch_assoc(); echo '<p><strong>'.($i+1).'. Titulo: '; echo stripslashes($row['title']); echo '</strong><br />Autor: '; echo stripslashes($row['author']); echo '<br />Codigo: '; echo stripslashes($row['isbn']); echo '<br />Precio: '; echo stripslashes($row['price']); echo '</p>'; } $result->free(); $db->close(); ?></body></html>
Demo - Nuevolibro.htmlDemo - Nuevolibro.html<html>
<head> <title>Book-O-Rama - Ingrese Nuevo Libro</title></head><body> <h1>Book-O-Rama - Ingrese Nuevo Libro</h1> <form action="inserta_libro.php" method="post"> <table border="0"> <tr> <td>Codigo</td> <td><input type="text" name="isbn" maxlength="13" size="13"></td> </tr> <tr> <td>Autor</td> <td> <input type="text" name="author" maxlength="30" size="30"></td> </tr> <tr> <td>Titulo</td> <td> <input type="text" name="title" maxlength="60" size="30"></td> </tr> <tr> <td>Precio $</td> <td><input type="text" name="price" maxlength="7" size="7"></td> </tr> <tr> <td colspan="2"><input type="submit" value="Insertar"></td> </tr> </table> </form></body></html>
<html><head> <title>Book-O-Rama - Ingrese Nuevo Libro</title></head><body> <h1>Book-O-Rama - Ingrese Nuevo Libro</h1> <form action="inserta_libro.php" method="post"> <table border="0"> <tr> <td>Codigo</td> <td><input type="text" name="isbn" maxlength="13" size="13"></td> </tr> <tr> <td>Autor</td> <td> <input type="text" name="author" maxlength="30" size="30"></td> </tr> <tr> <td>Titulo</td> <td> <input type="text" name="title" maxlength="60" size="30"></td> </tr> <tr> <td>Precio $</td> <td><input type="text" name="price" maxlength="7" size="7"></td> </tr> <tr> <td colspan="2"><input type="submit" value="Insertar"></td> </tr> </table> </form></body></html>
Demo – Insertalibro.phpDemo – Insertalibro.php<html><head> <title>Book-O-Rama Resultado de la Insercion de Libro</title></head><body><h1>Book-O-Rama Resultado de la Insercion de Libro</h1><?php $isbn=$_POST['isbn']; $author=$_POST['author']; $title=$_POST['title']; $price=$_POST['price']; if (!$isbn || !$author || !$title || !$price) { echo 'usted tiene que ingresar todos los campos.<br />'; exit; } @ $db = new mysqli('localhost', 'root', 'uni', 'libros'); if (mysqli_connect_errno()) { echo 'Error: No puede conectarse a la Base de Datos.'; exit; } $query = "insert into books values ('".$isbn."', '".$author."', '".$title."', '".$price."')"; $result = $db->query($query); if ($result) echo $db->affected_rows.' libros insertados en la base de datos.'; $db->close();?></body></html>
<html><head> <title>Book-O-Rama Resultado de la Insercion de Libro</title></head><body><h1>Book-O-Rama Resultado de la Insercion de Libro</h1><?php $isbn=$_POST['isbn']; $author=$_POST['author']; $title=$_POST['title']; $price=$_POST['price']; if (!$isbn || !$author || !$title || !$price) { echo 'usted tiene que ingresar todos los campos.<br />'; exit; } @ $db = new mysqli('localhost', 'root', 'uni', 'libros'); if (mysqli_connect_errno()) { echo 'Error: No puede conectarse a la Base de Datos.'; exit; } $query = "insert into books values ('".$isbn."', '".$author."', '".$title."', '".$price."')"; $result = $db->query($query); if ($result) echo $db->affected_rows.' libros insertados en la base de datos.'; $db->close();?></body></html>
Recommended