SlideShare una empresa de Scribd logo
1 de 83
Descargar para leer sin conexión
PHP & MySQL Ing. Antonio J. Hdez. Blanco. Mail:  [email_address] Ing. Wilian Arroba Mail: [email_address]
Contenido del curso ,[object Object],[object Object],[object Object],[object Object],[object Object]
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Corta historia de PHP PHP es un lenguaje creado por una gran comunidad de personas. El sistema fue desarrollado originalmente en el año 1994 por Rasmus Lerdorf como un CGI escrito en C que permitía la interpretación de un número limitado de comandos.  El sistema fue denominado Personal Home Page Tools y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias páginas.
Corta historia de PHP Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI.
Corta historia de PHP La siguiente gran contribución al lenguaje se realizó a mediados del 97 cuando se volvió a programar el analizador sintáctico, se incluyeron nuevas funcionalidades como el soporte a nuevos protocolos de Internet y el soporte a la gran mayoría de las bases de datos comerciales.
Corta historia de PHP Todas estas mejoras sentaron las bases de PHP versión 3. Actualmente PHP se encuentra en su versión 5, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir las necesidades actuales y solucionar algunos inconvenientes de la anterior versión.
Corta historia de PHP Algunas mejoras de esta nueva versión son su rapidez -gracias a que primero se compila y luego se ejecuta, mientras que antes se ejecutaba mientras se interpretaba el código-, su mayor independencia del servidor Web -creando versiones de PHP nativas para más plataformas- y un API más elaborado y con más funciones.
¿Qué es PHP? El lenguaje PHP es un lenguaje de programación de estilo clásico, es decir, es un lenguaje de programación con variables, sentencias condicionales, ciclos (bucles), funciones….  No es un lenguaje de marcado como podría ser HTML, XML o WML.  Está más cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
¿Qué es PHP? Pero a diferencia de JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador.  El resultado es normalmente una página HTML pero igualmente podría ser una pagina XML.
¿Qué es PHP? Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del browser, pero sin embargo para que las páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP.
¿Qué es PHP?
¿Qué se necesita para que funcione PHP? En sistemas Operativos Windows: Versión compilada de PHP. (http://www.php.net). Un servidor Web (Apache, PWS, IIS, Etc.). En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.php.net) Servidor Web (Apache). En versión fuente para compilar e instalar. ( http://www.apache.org ) O instalar desde los CDs de la distro que se use.
Qué es MySQL? Administrador de Base de Datos Una base de datos es un conjunto de datos estructurados. Esto podría ser cualquier cosa, desde una simple lista de compras hasta una galería de pinturas o la gran cantidad de información que se maneja en una corporación. Para agregar, acceder y procesar los datos almacenados en una base de datos computacional, se necesita un sistema administrador de base de datos tal como MySQL.
Qué es MySQL? Además los computadores son muy buenos manejando grandes cantidades de datos, el administrador de base de datos juega un rol central en la computación, ya sea como utilidad autónoma o parte de otra aplicación.
Qué es MySQL? Sistema administrador de base de datos relacionales Una base de datos relacional almacena datos en tablas separadas, más bien colocando todos los datos en un gran almacén. Esto agrega velocidad y flexibilidad.  Las tablas son enlazadas por relaciones definidas haciendo posible combinar datos desde varias tablas solicitadas.
Qué es MySQL? El SQL forma parte de MySQL, conocido como Lenguaje de Consultas Estructurado, es el lenguaje estandarizado más común usado para acceder base de datos. Software de Fuente Abierta Fuente abierta 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.
Qué es MySQL? 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.
Uso de MySQL? MySQL es muy rápido, seguro y fácil de usar. MySQL también ha desarrollado un conjunto de características muy prácticas, en estrecha cooperación con otros usuarios. MySQL fue desarrollado para manejar grandes bases de datos mucho más rápido que las soluciones existentes y ha sido usado exitosamente en ambientes de producción con altas demandas, por varios años. Aunque está bajo un desarrollo constante.
Uso de MySQL? MySQL siempre ofrece conjunto de funciones muy poderoso y eficiente. La conectividad, velocidad y seguridad hace de MySQL una suite poderosa para acceder a bases de datos en Internet.
Uso de MySQL? MySQL es un sistema Cliente/Servidor que consta de un servidor SQL multi-hilo que soporta diferentes backends, variados programas cliente y de librerías, administrador de herramientas y un programa de interface. MySQL contribución para muchos de los software disponibles. Es mucho más probable que se encuentre que diversas aplicaciones ya soportan MySQL
Uso de MySQL? Ventajas de MySQL: •  La mejor y más usada base de datos en el mundo. •  Disponible y Accesible para todos •  Fácil de usar •  Se está perfeccionando continuamente mientras permanece rápida y segura. •  Divertida para usar y perfeccionar. •  Libre de molestias.
Uso de MySQL? Características principales de MySQL A continuación se describen algunas de las características más importantes de MySQL: •  Escrito en C y C++, testado con GCC 2.7.2.1. Usa GNU autoconf para portabilidad. •  Clientes C, C++, Eiffel,PHP,Python,JAVA, Perl, TCL. •  Multiproceso, es decir puede usar varias CPU si éstas están disponibles.
Uso de MySQL? •  Puede trabajar en distintas plataformas y S.O. distintos. •  Sistema de contraseñas y privilegios muy flexible y segura. •  Todas la palabras de paso viajan encriptadas en la red. •  Registros de longitud fija y variable. •  16 índices por tabla, cada índice puede estar compuesto de 1 a 15 columnas o partes de ellas con una longitud máxima de 127 bytes.
Uso de MySQL? •  Todas las columnas pueden tener valores por defecto. •  Utilidad Isamchk para chequear, optimizar y reparar tablas. •  Todos los datos están grabados en formato ISO8859_1. •  Los clientes usan TCP o UNIX Socket para conectarse al servidor. •  Todos los comandos tienen -help o -? Para las ayudas.
Uso de MySQL? •  Soporta diversos tipos de columnas como enteros de 1, 2, 3, 4, y 8 bytes, coma flotante, doble precisión, carácter, fechas, enumerados, etc. •  ODBC para Windows 95 (con fuentes), se puede utilizar ACCESS para conectar con el servidor. •  Muy rápida usando joins, optimizada para un barrido multi-joins.
Uso de MySQL? Todas las funciones y operadores soportan en el SELECT y WHERE como partes de consultas. Ejemplo: mysql> SELECT CONCAT(nombre," ",apellido) FROM nombre_tabla WHERE ingreso >10000 AND edad >30 Todas las cláusulas SQL soportan GROUP BY y ORDER BY.
¿Instalación de MySQL? En sistemas Operativos Windows: Versión compilada de mysql (http://www.mysql.com). º111 En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.mysql.com) O instalar desde los CDs de la distro que se use.
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PRIMER PROGRAMA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PRIMER PROGRAMA ,[object Object],[object Object],[object Object],[object Object]
VARIABLES Y CONSTANTES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VARIABLES Y CONSTANTES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VARIABLES Y CONSTANTES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OPERADORES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SENTENCIA IF - ELSE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SENTENCIA SWITCH ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EJEMPLO SWITCH ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CICLO FOR ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BUCLE WHILE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BUCLE DO - WHILE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tablas - Vectores Las tablas (o array en inglés), son muy importantes en PHP, ya que generalmente, las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos, lo hacen en forma de tabla. En PHP disponemos de dos tipos de tablas. El primero sería el clásico, utilizando índices:
Tablas - Vectores <?php $ciudad[] = &quot;París&quot;; $ciudad[] = &quot;México&quot;; $ciudad[] = &quot;Roma&quot;; $ciudad[] = &quot;Sevilla&quot;; $ciudad[] = &quot;Londres&quot;; print (&quot;yo vivo en &quot; . $ciudad[1] . &quot;<BR>&quot;); ?>
Tablas - Vectores Esta es una forma de asignar elementos a una tabla, pero una forma más formal es utilizando la función  array <?php $ciudad = array(&quot;París&quot;, &quot;Roma&quot;, &quot;Sevilla&quot;, &quot;Londres&quot;); //contamos el número de elementos de la tabla $numelentos = count($ciudad); //imprimimos todos los elementos de la tabla for ($i=0; $i < $numelentos; $i++) { print (&quot;La ciudad $i es $ciudad[$i] <BR>&quot;); } ?>
Tablas - Vectores Sino se especifica, el primer índice es el  cero , pero podemos utilizar el operador  =>  para especificar el índice inicial.
Tablas - Vectores Un segundo tipo, son las  tablas asociativas , en las cuáles a cada elemento se le asigna un valor (key) para acceder a él. Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en al que cada elemento almacena el número de visitas a nuestra web por cada día de la semana.
Tablas - Vectores Utilizando el método clásico de índices, cada día de la semana se representaría por un entero, 0 para lunes, 1 para martes, etc. $visitas[0] = 200; $visitas[1] = 186; Si usamos las tablas asociativas sería $visitas[&quot;lunes&quot;] = 200; $visitas[&quot;martes&quot;] = 186; o bien, $visitas = array(&quot;codigo&quot;>$visitas = array(&quot;lunes&quot;=>200; &quot;martes&quot;=>186);
Tablas - Vectores Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los índices, pero ¿cómo hacerlo en las tablas asociativas?. La manipulación de las tabas asociativas se a hace través de funciones que actúan sobre un puntero interno que indica la posición. Por defecto, el puntero se sitúa en el primer elemento añadido en la tabla, hasta que es movido por una función:
Tablas - Vectores current  - devuelve el valor del elemento que indica el puntero pos  - realiza la misma función que  current reset  - mueve el puntero al  primer  elemento de la tabla end  - mueve el puntero al  último  elemento de la tabla next  - mueve el puntero al elemento  siguiente prev  - mueve el puntero al elemento  anterior count  - devuelve el número de elementos de una tabla.
Tablas - Vectores <?php $semana = array(&quot;lunes&quot;, &quot;martes&quot;, &quot;miércoles&quot;, &quot;jueves&quot;, &quot;viernes&quot;, &quot;sábado&quot;, &quot;domingo&quot;); echo count($semana); //7 //situamos el puntero en el primer elemento reset($semana); echo current($semana); //lunes next($semana); echo pos($semana); //martes end($semana) echo pos($semana); //domingo prev($semana); echo current($semana); //sábado ?>
Tablas - Vectores Recorrer una tabla con las funciones anteriores se hace un poco enredoso, para ello se recomienda utilizar la función  each() . <?php $visitas = array(&quot;lunes&quot;=>200, &quot;martes&quot;=>186, &quot;miércoles&quot;=>190, &quot;jueves&quot;=>175); reset($visitas); while (list($clave, $valor) = each($visitas)) { echo &quot;el día $clave ha tenido $valor visitas<BR>&quot;; } ?>
Tablas - Vectores La función  each()  devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve  falso , y termina el bucle  while() .
Tablas multidimensionales Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla. <?php $calendario[] = array (1, &quot;enero&quot;, 31); $calendario[] = array (2, &quot;febrero&quot;, 28); $calendario[] = array (3, &quot;marzo&quot;, 31); $calendario[] = array (4, &quot;abril&quot;, 30); $calendario[] = array (5, &quot;mayo&quot;, 31);
Tablas multidimensionales while (list($clave, $valor ) = each($calendario)){ { $cadena = $valor[1]; $cadena .= &quot; es el mes número &quot; . $valor[0]; $cadena .= &quot;y tiene &quot; . $varlor[2] . &quot; días<BR>&quot;; echo $cadena; } ?> La función  list()  es más bien un operador de asignación, lo que hace es asignar valores a unas lista de variables. En este caso los valores son extraídos de una tabla por la función  each() .
Formularios Los Formularios no forman parte de PHP, sino del lenguaje estándar de Internet, HTML, pero como éstos van a aparecer muchas veces durante el curso, vamos a dedicar esta algunas líneas a ellos. Todo formulario comienza con la etiqueta  <FORM ACTION=&quot;lo_que_sea.php&quot; METHOD=&quot;post/get&quot;> .  Con  ACTION  indicamos el script que va procesar la información que recogemos en el formulario, mientras que  METHOD  nos indica si el usuario del formulario va ha enviar datos ( post ) o recogerlos ( get ).
Formularios La etiqueta  </FORM>  indica el final del formulario. A partir de la etiqueta  <FORM>  vienen los campos de entrada de datos que pueden ser: Botón de comando: <input type=&quot;submit&quot; value=&quot;enviar&quot; name=&quot;enviar&quot;> Cuadro de texto: <input type=&quot;text&quot; name=&quot;nombre&quot; size=&quot;20&quot; value=“chino&quot;> Veamos los ejemplos de formularios.
Contenido clase # 3 ,[object Object],[object Object],[object Object]
Trabajo con ficheros fopen fopen -- Abre un archivo o una URL Descripción int fopen (string filename, string mode [, int use_include_path]) Si  filename  comienza con &quot;http://&quot; (no es sensible a mayúsculas), se abre una conexión HTTP 1.0 hacia el servidor especificado y se devuelve un apuntador de archivo al comienzo del texto de respuesta.
Trabajo con ficheros No maneja redirecciones HTTP, por eso se debe incluir una barra final cuando se trata de directorios. Si  filename  comienza con &quot;ftp://&quot; (no es sensible a mayúsculas), se abre una conexión ftp hacia el servidor especificado y se devuelve un apuntador al archivo requerido. Si el servidor no soporta ftp en modo pasivo, esto fallará. Se pueden abrir archivo via ftp para leer o para escribir (pero no ambas cosas simultáneamente). Si filename no comienza con nada de lo anterior, el archivo se abre del sistema dearchivos, y se devuelve un apuntador al archivo abierto si el abrir el archivo falla, la función devuelve false.
Trabajo con ficheros mode  puede ser cualquiera de lo siguiente: •  'r'  - Abre para sólo lectura; sitúa el apuntador del archivo al comienzo del mismo. •  'r+'  - Abre para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo. •  'w'  - Abre para sólo escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo.
Trabajo con ficheros •  'w+'  - Abre el archivo para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo. •  'a'  - Abre sólo para escribir (añadir); sitúa el apuntador del archivo al final del mismo. Si el archivo no existe, trata de crearlo. •  'a+'  - Abre para lectura y escritura (añadiendo); sitúa el apuntador del  archivo al final del mismo. Si el archivo no existe, trata de crearlo.
Trabajo con ficheros fwrite fwrite -- Escribe archivos en modo binario Descripción int fwrite (int fp, string string [, int length]) fwrite() escribe el contenido de  string  al fichero apuntado por  fp . Si se da el argumento  length , la escritura acaba antes de que  length  bytes sean escritos o se alcance el  final de  string , lo que ocurra primero.
Trabajo con ficheros fread fread -- Lee archivos en modo binario Descripción string fread (int fp, int length) fread() lee hasta  length  bytes del apuntador de fichero referenciado por  fp . La lectura acaba cuando  length  bytes se han leído o se alcanza EOF, lo que ocurra primero. Hagamos un contador sencillo para nuestra web.
Trabajo con BD MySQL Para la creación de BD y tablas usaremos el phpmyadmin que es mas fácil de usar y mas interactivos, pero veremos como hacerlo del shell del sistema.
Trabajo con BD MySQL Conectándose y desconectándose al servidor MySQL Para conectarse al servidor, generalmente se necesita proveer a  MySQL  un nombre de usuario, y un password. Si el servidor corre en una máquina distinta a la que se está utilizando se debe especificar el nombre del host (máquina).  Cuando se conocen todos estos parámetros la conexión se realiza de la siguiente manera: shell> mysql -h host -u user -p Enter password:*********
Trabajo con BD MySQL Si la conexión se realizó con éxito,  mysql  despliega el siguiente mensaje: Welcome to the MySQL monitor. Commands end with; or. Your MySQL connection id is 459 to server version: 3.22.20a-log Type &quot;help&quot; for help. mysql>
Trabajo con BD MySQL El prompt indica que  mysql  está listo para recibir los comandos que ingrese el usuario. Algunas instalaciones de  MySQL  admiten usuarios  anonymous  (sin nombre) cuando el servidor corre en el host local.  En este caso, se debe invocar a el servidor  mysql  sin ninguna opción: shell>mysql Una vez que se ha realizado la conexión con éxito, para desconectarse al servidor en cualquiera de los dos casos anteriores se debe escribir  QUIT  o  control-D .
Trabajo con BD MySQL Creando y usando una base de datos Visualización de las bases de datos existentes en el servidor MySQL Antes de crear una base de datos, se debe conocer que base de datos existen actualmente en el servidor, para ello se utiliza el comando SHOW, de la siguiente manera: mysql> SHOW DATABASES;
Trabajo con BD MySQL +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+ Esta lista probablemente no es igual en todas las máquinas, pero las bases de datos  mysql  y  test  están siempre entre ellas. La base de datos  mysql  se requiere porque en ella se describe la información de los privilegios de acceso a los usuarios.
Trabajo con BD MySQL Selección de una base de datos Para seleccionar o acceder a una base de datos determinada se utiliza el comando USE: mysql> USE test Database changed Una vez, que se ha realizado la conexión con éxito se puede comenzar a trabajar con la base de datos, pero siempre y cuando se tengan los permisos adecuados.
Trabajo con BD MySQL Si no se tienen los permisos el administrador debe darle los permisos al usuario para poder trabajar, esto se realiza con la ejecución del siguiente comando: mysql> GRANT ALL ON nombre_database.* TO nombre_usuario;
Trabajo con BD MySQL Creación de una base de datos Para crear una base de datos se debe tener permiso para poder crear base de datos en el servidor MySQL , si se tiene el permiso entonces la sentencia a seguir es: mysql> CREATE DATABASE nombre_database; Bajo Unix, los nombres de las bases de datos y de las tablas son sensibles, esto quiere decir que se hace diferencia entre minúsculas y mayúsculas, así es que para referirse a una base de datos determinada hay que llamarla tal como se le nombro cuando fue creada.
Trabajo con BD MySQL Creación de tablas Para crear las tablas que va a contener la base de datos, se realiza de la siguiente forma: mysql> CREATE TABLE nombre_tabla(campo_1 tipo(tamaño), campo_2 tipo(tamaño),...,campo_n tipo(tamaño)); El  campo  indica el nombre de la columna y  tipo(tamaño)  específica el tipo de dato y el espacio que se va a conservar para cada dato almacenado en esa columna.
Trabajo con BD MySQL Ejemplo: codigo int(5), nombre char(25), fecha date, etc.. Cuando se trata de fechas no se específica el tamaño, puesto que ya está determinado. Para visualizar las tablas que tiene una base de datos se usa el mismo comando utilizado para ver las bases de datos, pero con la diferencia de que en vez de  database  se coloca  tables , es decir:
Trabajo con BD MySQL mysql> SHOW TABLES; Para verificar que la tabla ha sido creada de la forma indicada, se usa el comando  DESCRIBE. Ejemplo: Se va a crear una tabla llamada  clientes , de la siguiente forma: mysql> CREATE TABLE clientes( rut char(8),nombre char(25), direccion char(50), telefono int(10)); mysql> DESCRIBE clientes;
Trabajo con BD MySQL +----------+-----------+------+-----+--------+-------+ | Field | Type | Null | Key | Default| Extra | +----------+-----------+------+-----+--------+-------+ | rut | char(12) | YES | | NULL | | | nombre | char(25) | YES | | NULL | | | direccion| char(50) | YES | | NULL | | | telefono | int(10) | YES | | NULL | | +----------+-----------+------+-----+--------+-------+
Trabajo con BD MySQL Esto es muy útil cuando se olvida el nombre o tipo de una columna. El  Field  indica el nombre de la columna,  Type  es el tipo de dato que acepta esa columna,  Null  indica si la columna puede contener valores NULL,  Key  indica la clave por la cual la columna se va a indexar y  Default  específica el valor por defecto que tiene la columna.
Trabajo con BD MySQL Ingreso de Datos a las tablas Para ingresar información a una tabla se puede hacer básicamente de dos maneras. La primera se utiliza cuando se tiene mucha información a ingresar de una sola vez,  entonces es conveniente almacenar esta información en un archivo de texto, es decir,  .txt . Una vez que se tiene este archivo, se procede de la siguiente forma: mysql> LOAD DATA LOCAL INFILE &quot;nombre_archivo.txt&quot; INTO TABLE nombre_tabla;
Trabajo con BD MySQL Para el caso que se desee ingresar un solo registro, entonces la sentencia a seguir es: mysql> INSERT INTO nombre_tabla VALUES (``valor_1'',''valor_2'',...., Los datos a ingresar se separan por comas y van entre comillas. Estos datos indican los valores que va a tomar cada una de las columnas, según el orden en que fueron creadas. En el caso que se quiera ingresar un valor NULL no es necesario las comillas, sólo se coloca NULL.
Trabajo con BD MySQL Recuperación de la Información Para recuperar la información que está contenida en una tabla, la sentencia general a seguir es: mysql> SELECT qué_es_lo_que_se_desea_ver FROM nombre_tabla WHERE condiciones_a_satisfacer; Para los casos en que, se requiera: o Ver o seleccionar toda la información de una tabla: o mysql> SELECT * FROM nombre_tabla; o Seleccionar filas en particular: o mysql> SELECT * FROM nombre_tabla WHERE nombre_columna=&quot;lo que se desee buscar&quot;
Trabajo con BD MySQL o Seleccionar columnas en particular: o mysql> SELECT nombre_columna_1, nombre_columna_n FROM nombre_tabla; Esto es conveniente cuando no se desea ver toda la fila o registro, entonces solo se seleccionan aquellas columnas en las que se esté interesado. .
Trabajo con BD MySQL Creación de una bd y su tabla.. Desde el shell CREATE TABLE tablacurso ( id tinyint(3) unsigned NOT NULL auto_increment, nombre varchar(30) DEFAULT '0' , direccion varchar(30) DEFAULT '0' , telefono varchar(30) DEFAULT '0' , email varchar(30) DEFAULT '0' , imagen varchar(30) DEFAULT '0' , PRIMARY KEY (id) );
Trabajo con BD MySQL Conectar desde php <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) {    die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Framework Laravel
Framework LaravelFramework Laravel
Framework Laravel
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
MAnual de php básico
MAnual de php básicoMAnual de php básico
MAnual de php básico
 
Manual Completo Php 5
Manual Completo Php 5Manual Completo Php 5
Manual Completo Php 5
 
Html,php
Html,phpHtml,php
Html,php
 
Practica09
Practica09Practica09
Practica09
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web java php-perl-google
Servicios web java php-perl-googleServicios web java php-perl-google
Servicios web java php-perl-google
 
Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Phpmyadmin
PhpmyadminPhpmyadmin
Phpmyadmin
 
7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Php ppt
Php pptPhp ppt
Php ppt
 

Destacado

Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchRobedgar MX
 
Programacion de SQL y MySQL
Programacion de SQL y MySQLProgramacion de SQL y MySQL
Programacion de SQL y MySQLhuritomo1998
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysqlI LG
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Victor Aravena
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Wilian
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqlJuan Timoteo Cori
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-javajairjulian
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.yanburbano
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpClau Doria
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Wilian
 

Destacado (20)

Comandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbenchComandos básicos para bases de datos mysql y workbench
Comandos básicos para bases de datos mysql y workbench
 
PPH MySql - FIEI - UNFV Clase02
PPH MySql - FIEI - UNFV Clase02PPH MySql - FIEI - UNFV Clase02
PPH MySql - FIEI - UNFV Clase02
 
PHP MySql FIEI - UNFV Clase05
PHP MySql FIEI - UNFV Clase05PHP MySql FIEI - UNFV Clase05
PHP MySql FIEI - UNFV Clase05
 
PHP MySql - FIEI - UNFVClase06
PHP MySql - FIEI - UNFVClase06PHP MySql - FIEI - UNFVClase06
PHP MySql - FIEI - UNFVClase06
 
Programacion de SQL y MySQL
Programacion de SQL y MySQLProgramacion de SQL y MySQL
Programacion de SQL y MySQL
 
Mysql
MysqlMysql
Mysql
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysql
 
PHP MySql - FIEI - UNFV Clase07
PHP MySql - FIEI - UNFV Clase07PHP MySql - FIEI - UNFV Clase07
PHP MySql - FIEI - UNFV Clase07
 
PHP MySql - FIEI - UNFV Clase03
PHP MySql - FIEI - UNFV Clase03PHP MySql - FIEI - UNFV Clase03
PHP MySql - FIEI - UNFV Clase03
 
PHP Y MYSQL
PHP Y MYSQLPHP Y MYSQL
PHP Y MYSQL
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
 
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
 
Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2Curso TIC de PHP y MSQL Parte 2
Curso TIC de PHP y MSQL Parte 2
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
Php.y.my sql
Php.y.my sqlPhp.y.my sql
Php.y.my sql
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-java
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.
 
Tema4[php]
Tema4[php]Tema4[php]
Tema4[php]
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo php
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 

Similar a Curso TIC de PHP y MSQL (20)

Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1
 
C. comparativo servidores & servicios
C. comparativo servidores & serviciosC. comparativo servidores & servicios
C. comparativo servidores & servicios
 
Apache
ApacheApache
Apache
 
Mysql
MysqlMysql
Mysql
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
Presentacion
PresentacionPresentacion
Presentacion
 
Presentacion
PresentacionPresentacion
Presentacion
 
Taller php9
Taller php9Taller php9
Taller php9
 
Php tema 4
Php tema 4Php tema 4
Php tema 4
 
introducción a base de datos MySQL
introducción a base de datos MySQLintroducción a base de datos MySQL
introducción a base de datos MySQL
 
15 servidor php
15 servidor php15 servidor php
15 servidor php
 
M1 introduccion a php
M1   introduccion a phpM1   introduccion a php
M1 introduccion a php
 
Taller php
Taller phpTaller php
Taller php
 
Taller php
Taller phpTaller php
Taller php
 
Taller php 03 septiembre
Taller php 03 septiembreTaller php 03 septiembre
Taller php 03 septiembre
 
Taller php 03 septiembre
Taller php 03 septiembreTaller php 03 septiembre
Taller php 03 septiembre
 
Investigación Lenguaje Php Eduardo Flores
Investigación Lenguaje Php  Eduardo FloresInvestigación Lenguaje Php  Eduardo Flores
Investigación Lenguaje Php Eduardo Flores
 
PHP
PHPPHP
PHP
 
Lenguaje de Programación PHP
Lenguaje de Programación PHPLenguaje de Programación PHP
Lenguaje de Programación PHP
 
Servidor PHP
Servidor PHPServidor PHP
Servidor PHP
 

Último

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 

Último (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 

Curso TIC de PHP y MSQL

  • 1. PHP & MySQL Ing. Antonio J. Hdez. Blanco. Mail: [email_address] Ing. Wilian Arroba Mail: [email_address]
  • 2.
  • 3.
  • 4. Corta historia de PHP PHP es un lenguaje creado por una gran comunidad de personas. El sistema fue desarrollado originalmente en el año 1994 por Rasmus Lerdorf como un CGI escrito en C que permitía la interpretación de un número limitado de comandos. El sistema fue denominado Personal Home Page Tools y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias páginas.
  • 5. Corta historia de PHP Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI.
  • 6. Corta historia de PHP La siguiente gran contribución al lenguaje se realizó a mediados del 97 cuando se volvió a programar el analizador sintáctico, se incluyeron nuevas funcionalidades como el soporte a nuevos protocolos de Internet y el soporte a la gran mayoría de las bases de datos comerciales.
  • 7. Corta historia de PHP Todas estas mejoras sentaron las bases de PHP versión 3. Actualmente PHP se encuentra en su versión 5, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir las necesidades actuales y solucionar algunos inconvenientes de la anterior versión.
  • 8. Corta historia de PHP Algunas mejoras de esta nueva versión son su rapidez -gracias a que primero se compila y luego se ejecuta, mientras que antes se ejecutaba mientras se interpretaba el código-, su mayor independencia del servidor Web -creando versiones de PHP nativas para más plataformas- y un API más elaborado y con más funciones.
  • 9. ¿Qué es PHP? El lenguaje PHP es un lenguaje de programación de estilo clásico, es decir, es un lenguaje de programación con variables, sentencias condicionales, ciclos (bucles), funciones…. No es un lenguaje de marcado como podría ser HTML, XML o WML. Está más cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
  • 10. ¿Qué es PHP? Pero a diferencia de JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina XML.
  • 11. ¿Qué es PHP? Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del browser, pero sin embargo para que las páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP.
  • 13. ¿Qué se necesita para que funcione PHP? En sistemas Operativos Windows: Versión compilada de PHP. (http://www.php.net). Un servidor Web (Apache, PWS, IIS, Etc.). En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.php.net) Servidor Web (Apache). En versión fuente para compilar e instalar. ( http://www.apache.org ) O instalar desde los CDs de la distro que se use.
  • 14. Qué es MySQL? Administrador de Base de Datos Una base de datos es un conjunto de datos estructurados. Esto podría ser cualquier cosa, desde una simple lista de compras hasta una galería de pinturas o la gran cantidad de información que se maneja en una corporación. Para agregar, acceder y procesar los datos almacenados en una base de datos computacional, se necesita un sistema administrador de base de datos tal como MySQL.
  • 15. Qué es MySQL? Además los computadores son muy buenos manejando grandes cantidades de datos, el administrador de base de datos juega un rol central en la computación, ya sea como utilidad autónoma o parte de otra aplicación.
  • 16. Qué es MySQL? Sistema administrador de base de datos relacionales Una base de datos relacional almacena datos en tablas separadas, más bien colocando todos los datos en un gran almacén. Esto agrega velocidad y flexibilidad. Las tablas son enlazadas por relaciones definidas haciendo posible combinar datos desde varias tablas solicitadas.
  • 17. Qué es MySQL? El SQL forma parte de MySQL, conocido como Lenguaje de Consultas Estructurado, es el lenguaje estandarizado más común usado para acceder base de datos. Software de Fuente Abierta Fuente abierta 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.
  • 18. Qué es MySQL? 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.
  • 19. Uso de MySQL? MySQL es muy rápido, seguro y fácil de usar. MySQL también ha desarrollado un conjunto de características muy prácticas, en estrecha cooperación con otros usuarios. MySQL fue desarrollado para manejar grandes bases de datos mucho más rápido que las soluciones existentes y ha sido usado exitosamente en ambientes de producción con altas demandas, por varios años. Aunque está bajo un desarrollo constante.
  • 20. Uso de MySQL? MySQL siempre ofrece conjunto de funciones muy poderoso y eficiente. La conectividad, velocidad y seguridad hace de MySQL una suite poderosa para acceder a bases de datos en Internet.
  • 21. Uso de MySQL? MySQL es un sistema Cliente/Servidor que consta de un servidor SQL multi-hilo que soporta diferentes backends, variados programas cliente y de librerías, administrador de herramientas y un programa de interface. MySQL contribución para muchos de los software disponibles. Es mucho más probable que se encuentre que diversas aplicaciones ya soportan MySQL
  • 22. Uso de MySQL? Ventajas de MySQL: • La mejor y más usada base de datos en el mundo. • Disponible y Accesible para todos • Fácil de usar • Se está perfeccionando continuamente mientras permanece rápida y segura. • Divertida para usar y perfeccionar. • Libre de molestias.
  • 23. Uso de MySQL? Características principales de MySQL A continuación se describen algunas de las características más importantes de MySQL: • Escrito en C y C++, testado con GCC 2.7.2.1. Usa GNU autoconf para portabilidad. • Clientes C, C++, Eiffel,PHP,Python,JAVA, Perl, TCL. • Multiproceso, es decir puede usar varias CPU si éstas están disponibles.
  • 24. Uso de MySQL? • Puede trabajar en distintas plataformas y S.O. distintos. • Sistema de contraseñas y privilegios muy flexible y segura. • Todas la palabras de paso viajan encriptadas en la red. • Registros de longitud fija y variable. • 16 índices por tabla, cada índice puede estar compuesto de 1 a 15 columnas o partes de ellas con una longitud máxima de 127 bytes.
  • 25. Uso de MySQL? • Todas las columnas pueden tener valores por defecto. • Utilidad Isamchk para chequear, optimizar y reparar tablas. • Todos los datos están grabados en formato ISO8859_1. • Los clientes usan TCP o UNIX Socket para conectarse al servidor. • Todos los comandos tienen -help o -? Para las ayudas.
  • 26. Uso de MySQL? • Soporta diversos tipos de columnas como enteros de 1, 2, 3, 4, y 8 bytes, coma flotante, doble precisión, carácter, fechas, enumerados, etc. • ODBC para Windows 95 (con fuentes), se puede utilizar ACCESS para conectar con el servidor. • Muy rápida usando joins, optimizada para un barrido multi-joins.
  • 27. Uso de MySQL? Todas las funciones y operadores soportan en el SELECT y WHERE como partes de consultas. Ejemplo: mysql> SELECT CONCAT(nombre,&quot; &quot;,apellido) FROM nombre_tabla WHERE ingreso >10000 AND edad >30 Todas las cláusulas SQL soportan GROUP BY y ORDER BY.
  • 28. ¿Instalación de MySQL? En sistemas Operativos Windows: Versión compilada de mysql (http://www.mysql.com). º111 En sistemas Operativos Linux: Versión en fuente para compilar e instalar. (http://www.mysql.com) O instalar desde los CDs de la distro que se use.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42. Tablas - Vectores Las tablas (o array en inglés), son muy importantes en PHP, ya que generalmente, las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos, lo hacen en forma de tabla. En PHP disponemos de dos tipos de tablas. El primero sería el clásico, utilizando índices:
  • 43. Tablas - Vectores <?php $ciudad[] = &quot;París&quot;; $ciudad[] = &quot;México&quot;; $ciudad[] = &quot;Roma&quot;; $ciudad[] = &quot;Sevilla&quot;; $ciudad[] = &quot;Londres&quot;; print (&quot;yo vivo en &quot; . $ciudad[1] . &quot;<BR>&quot;); ?>
  • 44. Tablas - Vectores Esta es una forma de asignar elementos a una tabla, pero una forma más formal es utilizando la función array <?php $ciudad = array(&quot;París&quot;, &quot;Roma&quot;, &quot;Sevilla&quot;, &quot;Londres&quot;); //contamos el número de elementos de la tabla $numelentos = count($ciudad); //imprimimos todos los elementos de la tabla for ($i=0; $i < $numelentos; $i++) { print (&quot;La ciudad $i es $ciudad[$i] <BR>&quot;); } ?>
  • 45. Tablas - Vectores Sino se especifica, el primer índice es el cero , pero podemos utilizar el operador => para especificar el índice inicial.
  • 46. Tablas - Vectores Un segundo tipo, son las tablas asociativas , en las cuáles a cada elemento se le asigna un valor (key) para acceder a él. Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en al que cada elemento almacena el número de visitas a nuestra web por cada día de la semana.
  • 47. Tablas - Vectores Utilizando el método clásico de índices, cada día de la semana se representaría por un entero, 0 para lunes, 1 para martes, etc. $visitas[0] = 200; $visitas[1] = 186; Si usamos las tablas asociativas sería $visitas[&quot;lunes&quot;] = 200; $visitas[&quot;martes&quot;] = 186; o bien, $visitas = array(&quot;codigo&quot;>$visitas = array(&quot;lunes&quot;=>200; &quot;martes&quot;=>186);
  • 48. Tablas - Vectores Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los índices, pero ¿cómo hacerlo en las tablas asociativas?. La manipulación de las tabas asociativas se a hace través de funciones que actúan sobre un puntero interno que indica la posición. Por defecto, el puntero se sitúa en el primer elemento añadido en la tabla, hasta que es movido por una función:
  • 49. Tablas - Vectores current - devuelve el valor del elemento que indica el puntero pos - realiza la misma función que current reset - mueve el puntero al primer elemento de la tabla end - mueve el puntero al último elemento de la tabla next - mueve el puntero al elemento siguiente prev - mueve el puntero al elemento anterior count - devuelve el número de elementos de una tabla.
  • 50. Tablas - Vectores <?php $semana = array(&quot;lunes&quot;, &quot;martes&quot;, &quot;miércoles&quot;, &quot;jueves&quot;, &quot;viernes&quot;, &quot;sábado&quot;, &quot;domingo&quot;); echo count($semana); //7 //situamos el puntero en el primer elemento reset($semana); echo current($semana); //lunes next($semana); echo pos($semana); //martes end($semana) echo pos($semana); //domingo prev($semana); echo current($semana); //sábado ?>
  • 51. Tablas - Vectores Recorrer una tabla con las funciones anteriores se hace un poco enredoso, para ello se recomienda utilizar la función each() . <?php $visitas = array(&quot;lunes&quot;=>200, &quot;martes&quot;=>186, &quot;miércoles&quot;=>190, &quot;jueves&quot;=>175); reset($visitas); while (list($clave, $valor) = each($visitas)) { echo &quot;el día $clave ha tenido $valor visitas<BR>&quot;; } ?>
  • 52. Tablas - Vectores La función each() devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve falso , y termina el bucle while() .
  • 53. Tablas multidimensionales Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla. <?php $calendario[] = array (1, &quot;enero&quot;, 31); $calendario[] = array (2, &quot;febrero&quot;, 28); $calendario[] = array (3, &quot;marzo&quot;, 31); $calendario[] = array (4, &quot;abril&quot;, 30); $calendario[] = array (5, &quot;mayo&quot;, 31);
  • 54. Tablas multidimensionales while (list($clave, $valor ) = each($calendario)){ { $cadena = $valor[1]; $cadena .= &quot; es el mes número &quot; . $valor[0]; $cadena .= &quot;y tiene &quot; . $varlor[2] . &quot; días<BR>&quot;; echo $cadena; } ?> La función list() es más bien un operador de asignación, lo que hace es asignar valores a unas lista de variables. En este caso los valores son extraídos de una tabla por la función each() .
  • 55. Formularios Los Formularios no forman parte de PHP, sino del lenguaje estándar de Internet, HTML, pero como éstos van a aparecer muchas veces durante el curso, vamos a dedicar esta algunas líneas a ellos. Todo formulario comienza con la etiqueta <FORM ACTION=&quot;lo_que_sea.php&quot; METHOD=&quot;post/get&quot;> . Con ACTION indicamos el script que va procesar la información que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va ha enviar datos ( post ) o recogerlos ( get ).
  • 56. Formularios La etiqueta </FORM> indica el final del formulario. A partir de la etiqueta <FORM> vienen los campos de entrada de datos que pueden ser: Botón de comando: <input type=&quot;submit&quot; value=&quot;enviar&quot; name=&quot;enviar&quot;> Cuadro de texto: <input type=&quot;text&quot; name=&quot;nombre&quot; size=&quot;20&quot; value=“chino&quot;> Veamos los ejemplos de formularios.
  • 57.
  • 58. Trabajo con ficheros fopen fopen -- Abre un archivo o una URL Descripción int fopen (string filename, string mode [, int use_include_path]) Si filename comienza con &quot;http://&quot; (no es sensible a mayúsculas), se abre una conexión HTTP 1.0 hacia el servidor especificado y se devuelve un apuntador de archivo al comienzo del texto de respuesta.
  • 59. Trabajo con ficheros No maneja redirecciones HTTP, por eso se debe incluir una barra final cuando se trata de directorios. Si filename comienza con &quot;ftp://&quot; (no es sensible a mayúsculas), se abre una conexión ftp hacia el servidor especificado y se devuelve un apuntador al archivo requerido. Si el servidor no soporta ftp en modo pasivo, esto fallará. Se pueden abrir archivo via ftp para leer o para escribir (pero no ambas cosas simultáneamente). Si filename no comienza con nada de lo anterior, el archivo se abre del sistema dearchivos, y se devuelve un apuntador al archivo abierto si el abrir el archivo falla, la función devuelve false.
  • 60. Trabajo con ficheros mode puede ser cualquiera de lo siguiente: • 'r' - Abre para sólo lectura; sitúa el apuntador del archivo al comienzo del mismo. • 'r+' - Abre para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo. • 'w' - Abre para sólo escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo.
  • 61. Trabajo con ficheros • 'w+' - Abre el archivo para lectura y escritura; sitúa el apuntador del archivo al comienzo del archivo y trunca el archivo con longitud cero. Si el archivo no existe, trata de crearlo. • 'a' - Abre sólo para escribir (añadir); sitúa el apuntador del archivo al final del mismo. Si el archivo no existe, trata de crearlo. • 'a+' - Abre para lectura y escritura (añadiendo); sitúa el apuntador del archivo al final del mismo. Si el archivo no existe, trata de crearlo.
  • 62. Trabajo con ficheros fwrite fwrite -- Escribe archivos en modo binario Descripción int fwrite (int fp, string string [, int length]) fwrite() escribe el contenido de string al fichero apuntado por fp . Si se da el argumento length , la escritura acaba antes de que length bytes sean escritos o se alcance el final de string , lo que ocurra primero.
  • 63. Trabajo con ficheros fread fread -- Lee archivos en modo binario Descripción string fread (int fp, int length) fread() lee hasta length bytes del apuntador de fichero referenciado por fp . La lectura acaba cuando length bytes se han leído o se alcanza EOF, lo que ocurra primero. Hagamos un contador sencillo para nuestra web.
  • 64. Trabajo con BD MySQL Para la creación de BD y tablas usaremos el phpmyadmin que es mas fácil de usar y mas interactivos, pero veremos como hacerlo del shell del sistema.
  • 65. Trabajo con BD MySQL Conectándose y desconectándose al servidor MySQL Para conectarse al servidor, generalmente se necesita proveer a MySQL un nombre de usuario, y un password. Si el servidor corre en una máquina distinta a la que se está utilizando se debe especificar el nombre del host (máquina). Cuando se conocen todos estos parámetros la conexión se realiza de la siguiente manera: shell> mysql -h host -u user -p Enter password:*********
  • 66. Trabajo con BD MySQL Si la conexión se realizó con éxito, mysql despliega el siguiente mensaje: Welcome to the MySQL monitor. Commands end with; or. Your MySQL connection id is 459 to server version: 3.22.20a-log Type &quot;help&quot; for help. mysql>
  • 67. Trabajo con BD MySQL El prompt indica que mysql está listo para recibir los comandos que ingrese el usuario. Algunas instalaciones de MySQL admiten usuarios anonymous (sin nombre) cuando el servidor corre en el host local. En este caso, se debe invocar a el servidor mysql sin ninguna opción: shell>mysql Una vez que se ha realizado la conexión con éxito, para desconectarse al servidor en cualquiera de los dos casos anteriores se debe escribir QUIT o control-D .
  • 68. Trabajo con BD MySQL Creando y usando una base de datos Visualización de las bases de datos existentes en el servidor MySQL Antes de crear una base de datos, se debe conocer que base de datos existen actualmente en el servidor, para ello se utiliza el comando SHOW, de la siguiente manera: mysql> SHOW DATABASES;
  • 69. Trabajo con BD MySQL +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+ Esta lista probablemente no es igual en todas las máquinas, pero las bases de datos mysql y test están siempre entre ellas. La base de datos mysql se requiere porque en ella se describe la información de los privilegios de acceso a los usuarios.
  • 70. Trabajo con BD MySQL Selección de una base de datos Para seleccionar o acceder a una base de datos determinada se utiliza el comando USE: mysql> USE test Database changed Una vez, que se ha realizado la conexión con éxito se puede comenzar a trabajar con la base de datos, pero siempre y cuando se tengan los permisos adecuados.
  • 71. Trabajo con BD MySQL Si no se tienen los permisos el administrador debe darle los permisos al usuario para poder trabajar, esto se realiza con la ejecución del siguiente comando: mysql> GRANT ALL ON nombre_database.* TO nombre_usuario;
  • 72. Trabajo con BD MySQL Creación de una base de datos Para crear una base de datos se debe tener permiso para poder crear base de datos en el servidor MySQL , si se tiene el permiso entonces la sentencia a seguir es: mysql> CREATE DATABASE nombre_database; Bajo Unix, los nombres de las bases de datos y de las tablas son sensibles, esto quiere decir que se hace diferencia entre minúsculas y mayúsculas, así es que para referirse a una base de datos determinada hay que llamarla tal como se le nombro cuando fue creada.
  • 73. Trabajo con BD MySQL Creación de tablas Para crear las tablas que va a contener la base de datos, se realiza de la siguiente forma: mysql> CREATE TABLE nombre_tabla(campo_1 tipo(tamaño), campo_2 tipo(tamaño),...,campo_n tipo(tamaño)); El campo indica el nombre de la columna y tipo(tamaño) específica el tipo de dato y el espacio que se va a conservar para cada dato almacenado en esa columna.
  • 74. Trabajo con BD MySQL Ejemplo: codigo int(5), nombre char(25), fecha date, etc.. Cuando se trata de fechas no se específica el tamaño, puesto que ya está determinado. Para visualizar las tablas que tiene una base de datos se usa el mismo comando utilizado para ver las bases de datos, pero con la diferencia de que en vez de database se coloca tables , es decir:
  • 75. Trabajo con BD MySQL mysql> SHOW TABLES; Para verificar que la tabla ha sido creada de la forma indicada, se usa el comando DESCRIBE. Ejemplo: Se va a crear una tabla llamada clientes , de la siguiente forma: mysql> CREATE TABLE clientes( rut char(8),nombre char(25), direccion char(50), telefono int(10)); mysql> DESCRIBE clientes;
  • 76. Trabajo con BD MySQL +----------+-----------+------+-----+--------+-------+ | Field | Type | Null | Key | Default| Extra | +----------+-----------+------+-----+--------+-------+ | rut | char(12) | YES | | NULL | | | nombre | char(25) | YES | | NULL | | | direccion| char(50) | YES | | NULL | | | telefono | int(10) | YES | | NULL | | +----------+-----------+------+-----+--------+-------+
  • 77. Trabajo con BD MySQL Esto es muy útil cuando se olvida el nombre o tipo de una columna. El Field indica el nombre de la columna, Type es el tipo de dato que acepta esa columna, Null indica si la columna puede contener valores NULL, Key indica la clave por la cual la columna se va a indexar y Default específica el valor por defecto que tiene la columna.
  • 78. Trabajo con BD MySQL Ingreso de Datos a las tablas Para ingresar información a una tabla se puede hacer básicamente de dos maneras. La primera se utiliza cuando se tiene mucha información a ingresar de una sola vez, entonces es conveniente almacenar esta información en un archivo de texto, es decir, .txt . Una vez que se tiene este archivo, se procede de la siguiente forma: mysql> LOAD DATA LOCAL INFILE &quot;nombre_archivo.txt&quot; INTO TABLE nombre_tabla;
  • 79. Trabajo con BD MySQL Para el caso que se desee ingresar un solo registro, entonces la sentencia a seguir es: mysql> INSERT INTO nombre_tabla VALUES (``valor_1'',''valor_2'',...., Los datos a ingresar se separan por comas y van entre comillas. Estos datos indican los valores que va a tomar cada una de las columnas, según el orden en que fueron creadas. En el caso que se quiera ingresar un valor NULL no es necesario las comillas, sólo se coloca NULL.
  • 80. Trabajo con BD MySQL Recuperación de la Información Para recuperar la información que está contenida en una tabla, la sentencia general a seguir es: mysql> SELECT qué_es_lo_que_se_desea_ver FROM nombre_tabla WHERE condiciones_a_satisfacer; Para los casos en que, se requiera: o Ver o seleccionar toda la información de una tabla: o mysql> SELECT * FROM nombre_tabla; o Seleccionar filas en particular: o mysql> SELECT * FROM nombre_tabla WHERE nombre_columna=&quot;lo que se desee buscar&quot;
  • 81. Trabajo con BD MySQL o Seleccionar columnas en particular: o mysql> SELECT nombre_columna_1, nombre_columna_n FROM nombre_tabla; Esto es conveniente cuando no se desea ver toda la fila o registro, entonces solo se seleccionan aquellas columnas en las que se esté interesado. .
  • 82. Trabajo con BD MySQL Creación de una bd y su tabla.. Desde el shell CREATE TABLE tablacurso ( id tinyint(3) unsigned NOT NULL auto_increment, nombre varchar(30) DEFAULT '0' , direccion varchar(30) DEFAULT '0' , telefono varchar(30) DEFAULT '0' , email varchar(30) DEFAULT '0' , imagen varchar(30) DEFAULT '0' , PRIMARY KEY (id) );
  • 83. Trabajo con BD MySQL Conectar desde php <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) {    die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>