Вы находитесь на странице: 1из 46

PHP (acrnimo recursivo de PHP: Hypertext Preprocessor)

El entorno de trabajo: herramientas bsicas


Mapa

Recursos en un solo paquete


Recurso

WAMPSERVER
http://www.wampserver.com/en/

Descripcin
Paquete bsico para construir
Servidor PHP
WAMP es el acrnimo para
instalaciones Apache, MySQL, PHP
sobre la plataforma Windows que
permite la publicacin de
pginas dinmicas sobre la web y
consta del siguiente Software:
Apache como servidor web.
Mdulo de PHP para Apache.
MySQL como servidor web.
PhpmyAdmin como aplicacin
web para poder acceder a la base de
datos.

Recursos por separado


Recurso

https://httpd.apache.org/download.cgi

http://php.net/
http://windows.php.net/download#php-5.6

https://www.mysql.com/
https://www.mysql.com/downloads/

Descripcin
Servidor web (software encargado de responder
a las peticiones de los clientes a travs de las
solicitudes que realizan con el navegador
utilizado).

Es un software de alta calidad.

Es de cdigo abierto ( Open source).

Es uno de los mayores xitos del software


libre.

Tiene una alta capacidad de modulacin


en su cdigo fuente.
Serio competidor del Servidor Web de Microsoft
( IIS: Internet Information
Server ), debido a su estabilidad y facilidad de
acceso.
Lenguaje script del lado de servidor. Para
que el servidor sepa interpretar este
lenguaje es necesario que est instalado el
mdulo correspondiente.
PHP proporciona una gran facilidad para
poder acceder a recursos del servidor como
ficheros, bases de datos, etc. Es muy fcil
conectar con una base de datos del tipo
MySql.
Al igual que el Servidor Web Apache, PHP es
openSource.
La ltima versin de PHP es la 5.6.12 y
toda la informacin acerca de su instalacin
independiente, funcionamiento y
configuracin se puede encontrar en la
siguiente direccin: http://php.net/
Sistema de Gestin de Bases de datos ( SGBD
), que forma parte del paquete WAMP, y que
se adapta perfectamente a sitios web
dinmicos diseados en un entornoApache
con PHP.
Es un SGBD rpido y sencillo que para la
mayora de sitios Web dinmicosde
tamao medio es ms que suficiente. En la
documentacin se habla de su uso con
bases de datos de 50 millones de registros.
MySQL al igual que los otros dos
componentes de WAMP se encuentra en fase
de desarrollo y se publican con regularidad
nuevas versiones y nuevas
caractersticas.

Dispositivo JDBC para acceder desde


Java.
Dispositivo ODBC para acceder
utilizando la API ODBC.
API de programacin para C, Perl,
C++, Python y TCL.
Acceso desde PHP.
Entornos visuales de gestin de la

base de datos.
Control de acceso basado en una
base de datos de administracin.
Etc.

Mi WampServer
Instalacin

La instalacin del paquete WampServer es muy fcil. Cuando finaliza dicho


asistente tendremos todo el software necesario para empezar a programar en
PHP.

Una vez que est todo instalado se coloca en la barra de tareas un icono que
representa el servicio WampServer. Para que todos los servicios se arranquen es
necesario acceder a ese icono y activarlos. El icono representado y las opciones
que presenta son las siguientes:

Los servicios de Apache, Php y MySql no estn arrancados y por


lo tanto no se van a visualizar las pginas que estemos
diseando.

Los servicios de Apache, Php y MySql si estn arrancados y por


lo tanto si se van a visualizar las pginas que estemos
diseando.

Para arrancar los servicios cuando el icono aparece de color magenta es hacer
click sobre dicho icono y aparecern las siguientes opciones:

Desde

esta

ventana

se

puede

acceder

diferentes opciones:

1.

Acceder a localhost, como la primera pgina de


acceso al sitio web.

2.

Acceder a phpMyAdmin para gestionar Base de


datos.

3.

Acceder directamente al subdirectorio www,


donde estoy construyento mis sitios web.

4.

Arrancar y configurar Apache

5.

Arrancar y configurar PHP

6.

Arrancar y configruar MySQL

7.

Arrancar todos los servicios a la vez

8.

Parar todos los servicios a la vez

9.

Reiniciar todos los servicios a la vez.

10.

Desactivar el sitio

Para que se pueda visualizar correctamente la pgina PHP, cmo mnimo debe de
estar arrancado el servicio Apache y PHP.

Estructura de directorios
Una vez que se ha descargardo el paquete WampServer y se ha instalado en
local, se crear una estructura de directorios que van a formar parte de nuestro
sitio web.
Las carpetas que se crean son las siguientes:

C:\wamp

Por defecto el paquete WampServer se instala en este


subdirectorio.

En este subdirectorio es donde se van a ir colocando las


pginas html, php que van a formar nuestro sitio Web.

C:\wamp\www

Lo habitual es crear un subdirectorio dentro de esta


carpeta para ir diferenciando los diferentes sitios web
que se vayan desarrollando. De esta forma si nuestro
sitio web se llama biblioteca, lo conviente sera crear la
siguiente carpeta c:\wamp\www\biblioteca y dentro ir
creando todos los archivos necesarios.

Una vez dentro de la carpeta de nuestro sitio web ( por


ejemplo c:\wamp\www\biblioteca ), es conveniente ir
creando carpetas segn el contenido. As es interesante
crear carpetas como:
Imagenes
Subdirectorios
de trabajo

Estilos
Recursos
Ficheros
Extras
Etc

En el raiz del subdirectorio se suele colocar el fichero index.html o index.php que


sera la pgina de inicio al sitio web.
Una vez que est instalado el paquete Wamp y todo ha ido bien, si colocamos en
el navegador la direccinhttp://localhost se debe obtener una imagen similar a la
siguiente:

FICHEROS DE CONFIGURACIN
La instalacin de los servicios de Apache, PHP y MySQL a travs del paquete
Wamp es de suma facilidad a travs del asistente indicado. Sin embargo, estos
servicios se configuran con los parmetros por defecto ms comunes para que el
sistema empiece a funcionar.

En ocasiones es necesario cambiar ciertos parmetros de estos servicios para


poder adaptarlos a alguna necesidad en concreto de nuestro sistema. Para ello
existen unos ficheros de configuracin que permiten modificar los parmetros de
los servicios instalados.
En concreto vamos a estudiar los siguientes ficheros de configuracin:

php.ini: Fichero de configuracin de PHP.

httpd:conf: Fichero de configuracin de Apache.

PRESTA ATENCIN
A travs del men de configuracin de Wamp se puede acceder a los ficheros de
configuracin indicados anteriormente. Es MUY IMPORTANTE, que cada vez que
se haga un cambio en alguno de esos ficheros los servicios se tengan que
reiniciar, para que surjan efecto.

1.2.1. PHP.INI

La ubicacin de este fichero suele ser:


C:\wamp\bin\apache\apache2.4.9\bin\php.ini

Sin embargo, puede variar segn la instalacin realizada. Dentro del fichero de
configuracinphp.ini se describen, entre otras cosas:
Las extensiones de PHP que se deben activar.
Las rutas para la subida de ficheros mediante protocolo POST.
Los tiempos de ejecucin de ficheros PHP.
El uso de la memoria RAM.
Etc.

A continuacin se detallan algunas variables cuyo valor se puede cambiar en este


fichero:
Variable

Descripcin

short_open_tag =
Of

El cdigo php se delimita con las llaves <?php y ?>. Si


queremos que las llaves sean cortas ( <? y ?> ), est opcin
se tendra que poner en On.

max_execution_tim
e = 30

Tiempo mximo que se permite que dure un script php,


expresado en segundos. Se podra subir este valor camibando
el nmero que viene por defecto.

post_max_size =
8M

Tamao mximo permitido para la subida de ficheros. Si


necesitamos subir ficheros de mayor tamao al servidor habra
que cambiar este valor.

memory_limit =
128M

Mxima memoria que puede utilizar el script en el servidor

error_reporting =
E_ALL

Se muestran los errores en la propia pgina PHP. Cuando se


est desarrollando es interesante tener activa esta opcin
para ver los fallos que se van generando.

ENLACE
Para una lista completa de todas las opciones de las que se disponen en este fichero
podemos acceder a la siguiente direccin web:
http://php.net/manual/es/ini.core.php

1.2.2. HTTPD.CONF

La ubicacin de este fichero suele ser:


C:\wamp\bin\apache\apache2.4.9\conf

Sin embargo, puede variar segn la instalacin realizada.


El fichero de configuracin de Apache (httpd.conf) contiene los parmetros para el
inicio del servicio Apache. Como ya se ha comentado Apache es el servidor que permite
que se puedan consultar pginas web desde el cliente.
Las peticiones que le llegan al servidor web Apache son escuchadas por un determinado
servicio y tambin a travs de un puerto, que es la puerta de entrada de dichas peticiones
al servidor. Los servidores tienen abiertos numerosos puertos y cada uno de ellos
cumplen una funcin. Normalmente el puerto 80 es el encargado de escuchar las
peticiones Web, aunque como ya veremos se puede cambiar.
El cambio de dicho puerto puede venir dado porque exista otra programa que lo
necesite, como por ejemplo Skype.
Existen ciertos parmetros que se pueden cambiar en este fichero, y cambian el
funcionamiento del servidor. Caben destacar los siguientes:
Variable

Descripcin

Listen

Permite cambiar el puerto de


escucha del servidor Apache.

DocumentRo
ot

Permite cambiar la carpeta de


ubicacin de los documentos
Web. Por defecto es
c:/wamp/www, pero se podra
cambiar.

LogLevel
warn

Permite establecer el nivel de


log que se quiere registrar
para ir mostrando los errores
del servidor.

AddType
application

Indica que aplicacin debe de


abrir el fichero que se solicita.

PRESTA ATENCIN
En ocasiones es una buena solucin enlazar el servicio web Apache a un puerto
alternativo, como por ejemplo el 8080. En este caso cuando se soliciten pginas al
servidor web se tendr que indicar el puerto asociado de la siguiente manera.
http://17.0.0.1:8080

ENLACE
Para una lista completa de todas las opciones de las que se disponen en este fichero
podemos acceder a la siguiente direccin web:
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-apache-

config.html

2. DESARROLLO EN LOCAL

Con el software que compone el paquete WAMP (Apache, Php, MySQL), y que se ha
detallado en los apartados anteriores, disponemos de los recursos necesarios para el
desarrollo de pginas web dinmicas.
Hay que hacer constar que la instalacin del paquete WAMP se realiza en local, o sea en
nuestro propio ordenador. Para ello hay que disponer de una mquina con los recursos
suficientes para que ese software funcione de manera correcta y fluida.
Todas las pruebas, diseos, acceso a base de datos se harn en local. Por lo tanto no se
va a poder acceder desde Internet o desde una acceso externo a las pginas que estemos
diseando en ese momento.
La forma de trabajar en el desarrollo web sera la siguiente:
Anlisis y creacin de las pginas a desarrollar en local.
Anlisis y creacin de la base de datos a crear ( si es necesaria ) en

local.
Subir todos los ficheros que componen las pginas php y la base de

datos a un hosting remoto.

Como se indica, primero se hace todo el estudio y programacin en local. Cuando ya


est todo analizado y se ha comprobado que el sitio web funciona perfectamente se sube
al hosting, para que el sitio Web sea visible desde Internet.

3. EDITORES DE CDIGO
Los editores de cdigo facilitan la labor de programacin en cualquier lenguaje, y en el
caso que nos ocupa en este curso, en PHP. Un buen editor puede hacer nuestro trabajo
ms eficiente, pues suele tener funciones especiales que nos ayuda a codificarciertas
tareas que son repetitivas.
Tambin es muy comn que las palabras reservadas aparezcan en otro color, e incluso
el sangrado de las lneas de cdigo que permiten diferenciar bloques dentro de un
mismo programa.
Las opciones a la hora de elegir el compaero optimo para programar son muy variadas,
y en muchos casos estn optimizadas para diferentes tipos de proyectos o lenguajes.
A modo de ejemplo se muestra una lista de diferentes editores que pueden ser usados
para la programacin en PHP, y la direccin web donde se pueden descargar el
sofware y manuales sobre su funcionamiento.
Programa

URL de descarga

Notepad ++

https://notepad-plus-plus.org/

Sublime Text

http://www.sublimetext.com/

Light Table

http://lighttable.com/

Vim

http://vim-latex.sourceforge.net/

Brackets

http://brackets.io/

Geany

http://www.geany.org/

GNU Emacs

https://www.gnu.org/software/emacs/

HAZLO T MISMO
Descarga el editor Notepad ++ e instlalo en tu ordenador. Localiza el manual de
usuario y practica las principales funcionales de este editor.

4. ELECCIN DEL HOSTING

Cuando ya queremos publicar nuestro sitio web, debemos de elegir a que hosting
subirlo. Para ello hay que tener en cuenta una serie de cuestiones, pues de ello depende
de que nuestro desarrollo funcione de igual manera a como lo hace en local.
Entre las caractersticas a tener en cuenta caben destacar las siguientes:
Disco duro: Cantidad de espacio que vamos a poder usar en el

hosting para el nmero de pginas, imgenes, ficheros, vdeos, etc.


Transferencia de datos: La cantidad de informacin que en un mes

se puede hacer en mi sitio Web.

Nmero

de dominios: Hay alojamientos que slo permite un


dominio.

Copias de seguridad: Es importante que tu proveedor de hosting

haga copias de seguridad o backups peridicos de tu cuenta.

Proteccin antihackeos: Siempre viene bien tener una proteccin

extra contra posibles ataques.


Soporte PHP: Importante que interprete el cdigo PHP y sobre todo

que est actualizada a la ltima versin.

Base de datos: Es necesario que se puedan crear bases de datos de

tipo MySQL, y qu numero de ellas. Es frecuente tener varias


aplicaciones php desarrolladas y que cada una de ellas necesite su
propia Base de datos.

Existen en internet la posibilidad de acceder a hosting gratuitos. Este tipo de hosting


para pruebas puntuales pueden ser interesante, pero para mantener un sitio web fiable y
a prueba de posibles fallos es conveniente acceder a hosting de pago. Existen hosting
compartidos que econmicamente son muy interesantes, porque alcompartir
recursos se comparte tambin el coste de su mantenimiento.

EJEMPLO
Algunos ejemplos de hosting son:
Hostinger: http://www.hostinger.es/
Webempresa: http://www.webempresa.com/
Dinahosting: https://dinahosting.com/

HAZLO T MISMO
Investiga por internet cual es el plan
empresa Dinahosting y que servicios ofrece.

ms

econmico

que

ofrece

la

ACTIVIDAD
Crear un tema de debate en el foro para comentar porque no es conveniente
trabajar directamente en los ficheros en remoto.

Conceptos
Cdigo embebido: Cuando se colocan secciones de cdigo de programacin
(como PHP) dentro de una pgina HTML, estamos hablando de cdigo
embebido.

SABAS QUE...?
Que la direccin Ip 127.0.0.1 corresponde a http://localhost. Te animo a que
coloques ambas url en el navegador y vers que obtendrs el mismo resultado.

CONCEPTOS

Entorno de desarrollo: Entorno local donde se realizan las pruebas


necesarias del software, hasta conseguir el objetivo buscado.

Entorno de produccin: Entorno pblico donde el usuario puede


acceder al producto ya operativo.

Unidad 3. Mi primer programa en PHP

Programar: redactar una secuencia de instrucciones necesarias para


que un determinado programa realice una cierta tarea.

Diseando una pgina web, dos bloques:


o cdigo HTML: no es programacin, es un lenguaje de marcas
que va definiendo los elementos de los que consta la pgina
web.
o cdigo PHP: s es un lenguaje de programacin y como tal,
dispone de las caractersticas propias de un programa
informtico.

La programacin requiere de una serie de fases:


o Anlisis del problema: Se estudia el problema que hay que
solucionar en forma de programa informtico.
o Diseo de la solucin: Disear una posible solucin a travs
de un algoritmo.
o Construccin de la solucin en forma de
programa: Codificar el algoritmo diseado en el punto
anterior en un lenguaje de programacin.
o Prueba: Realizar las pruebas necesarias para comprobar que
el programa funciona correctamente.
o Mantenimiento: Corregir posibles deficiencias detectadas en
el funcionamiento del programa a lo largo del tiempo.

Algoritmo: grupo finito de operaciones organizadas de manera


lgica y ordenada que permite solucionar un determinado problema
o Un algoritmo es independiente del lenguaje de
programacin. De esta forma se puede disear un algoritmo
y luego codificarlo en PHP, C Javascript.

QU ES PHP?

lenguaje de programacin de estilo clsico (con variables, sentencias


condicionales, bucles, funciones, etc,)
se ejecuta en el servidor (accede a los recursos que tenga el servidor)
es un lenguaje de cdigo abierto, interpretado, de alto nivel.
Creacin de pginas web dinmicas/ interfaz de lnea de comandos
el cdigo PHP va incrustado (embebido) dentro del cdigo de la pgina HTML
que estemos diseando

Lenguaje de alto nivel: instrucciones o sentencias son escritas con


palabras similares al lenguaje humano

Lenguaje de cdigo abierto: Su cdigo fuente est disponible para el


que lo desee. Es gratuito (se puede descargar sin costo alguno).

Lenguaje interpretado: El servidor interpreta el cdigo PHP, y lo convierte


en cdigo HTML.

muestra un mensaje de bienvenida:

Ejemplo
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
La primera pgina
</body>
</html>

Ejemplo
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
La primera pgina Html
<?php

Html

// Aqu ira el cdigo php


?>
</body>
</html>

os comentarios en los script php se indican con los caracteres // si ocupa una
sla lnea.
Si los comentarios ocupan varias lneas se pueden incluir entre los smbolos /* y
*/.

2. EL PRIMER PROGRAMA EN PHP


Nuestro primer programa en PHP, va a consistir en mostrar el mensaje Hola Mundo!
desde una pgina HTML que va a contener el script PHP necesario para mostrar dicho
mensaje.

Ejemplo
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
<?php
echo
"Hola
?>
</body>
</html>

Mundo!";

Concepto
El comando echo simplemente muestra el contenido que se incluye entre comillas en la
pgina html. Todas las instrucciones del script PHP deben finalizar con el smbolo ;
El cdigo anterior se puede desarrollar utilizando cualquier editor de cdigo de los
indicados en el tema anterior. En este caso se ha utilizado Notepad ++. Una vez que se
haya finalizado la edicin se ha de grabar con la extensin .php. Por ejemplo lo
podemos llamar prueba.php.

Es muy importante colocar ese fichero (prueba.php) en el subdirectorio donde est


instalado el servidor Web Apache. Por defecto el servidor Web Apache se instala
en c:\wamp\www.
Sera interesante crear un subdirectorio dentro de esa carpeta, como por ejemplo
pruebas, y colocar ah dentro el fichero creado. De esta manera la estructura de
directorios junto el fichero creado quedara as:

A partir de este momento, y teniendo en cuenta de que el Servidor Apache debe de estar
arrancado, si en el navegador escribimos http://localhost/pruebas/prueba.php se debe de
obtener el siguiente resultado.

Si en este momento pulsamos botn derecho en la pgina html y le pedimos


visualizar codigo fuente htmlobtendremos el cdigo que se muestra a continuacin,
que como se observa slo tiene cdigo HTML.
No queda ningn rastro de cdigo PHP, porque ya ha sido interpretado por el servidor
y convertido en HTML.

A continuacin se muestran algunos de los errores ms frecuentes cuando no se


obtiene el resultado esperado.

El fichero .php siempre tiene que estar ubicado en el subdirectorio www


del servidor Apache. Si se graba en otra ubicacin el navegador no lo
interpretar correctamente.

Todas las instrucciones php deben de acabar en ;

No est arrancado el Servicio de Apache.

No est arrancado el Servicio de PHP.

El fichero no tiene la extensin .php y se ha nombrado con .html

Cuando el servidor Apache detecta algn error en la sintaxis del cdigo


php muestra una descripcin del error en el navegador, y no sigue
interpretando el resto del script.

COMPROBACIN ONLINE DE CDIGO PHP


En ocasiones necesitamos probar un cdigo php de manera rpida sin necesidad de
disponer de un servidor web instalado. Para ello existen programas online que nos
permite comprobar el resultado de un programa php. Uno de los ms utilizados
es Runcode, que se puede acceder a travs de la siguiente direccin Web:
http://rextester.com/runcode

Su funcionamiento es muy simple, y se indica en los siguientes puntos:


1.

Se elige el lenguaje de programacin en el apartado de Language

2.

En la ventana superior se escribe el cdigo php

3.

Se pulsa en el botn Run it (F8)

4.

Se obtiene en la ventana inferior el cdigo html ya interpretado,

5.

El cdigo obtenido se puede copiar y pegar en un fichero html que se puede


visualizar directamente en cualquier navegador.

Unidad 7 - Acceso a la base de datos

A nivel terico, existen dos lenguajes para el manejo de bases de datos:


DDL (Data Definition Language) Lenguaje de definicin de datos. Es el lenguaje que se usa para crear
bases de datos y tablas, y para modificar sus estructuras, as como los permisos y privilegios.
Este lenguaje trabaja sobre unas tablas especiales llamadas diccionario de datos.
DML (Data Manipilation Language) lenguaje de manipulacin de datos. Es el que se usa para
modificar y obtener datos desde las bases de datos.
SQL engloba ambos lenguajes DDL+DML, y los estudiaremos juntos, ya que ambos forman parte del
conjunto de sentencias de SQL.
En este captulo vamos a explicar el proceso para pasar del modelo lgico relacional, en forma de
esquemas de relaciones, al modelo fsico, usando sentencias SQL, y viendo las peculiaridades
especficas de MySQL.

(1) CREACIN DE BASE DE DATOS Y TABLAS A TRAVS DE


WAMPSERVER
https://phpmyadmin-spanish.readthedocs.org/en/latest/
http://player.vimeo.com/video/139956848

1. Para gestionar la base de datos utilizamos el navegador:


a. Barra dedirecciones: localhost y nos sale el men de wampserver
b. Elegimos la opcin phpMyadmin

c. Nos vamos a Usuarios > Agregar usuario: creamos un nuevo


usuario: nombre admin, contrasea 123 y seleccionamos TODOS
LOS PERMISOS.

d. En el men lateral izquierdo salen todas las bases de datos ya


creadas y aparece la opcin NUEVA. Darle para crear la base de
datos ACD.

i. Le decimos que el tipo sea COTEJADA por el tema del uso de


caracteres especiales como la

e. Creamos una tabla

i. Creamos los valores particulares de cada campo de la tabla


(es como una plantilla, no se rellenan valores)
1. Nombre (ID) y para que sea autoincrementable
marcamos AI.
2. El resto de valores slo configuramos el tipo
(VARCHAR o INT) y el tamao de los campos.
3. Por ltimo, seleccionamos en COTEJADO el mismo
tipo que la base de datos utf8 spanish.
4. Le damos a guardar

f.

Para insertar valores en la tabla, simplemente seleccionamos el


nombre de la tabla men lateral izquierdo >> Base de datos
ACD >> Tabla agenda
i. Seleccionar pestaa insertar y tras insertar los campos
menos ID le damos a continuar> continuar.. se hace
una consulta en SQL que inserta estos registros en la tabla
ii. Si quiero ver la informacin insertada o editarla ir a pestaa
examinar.
iii. Puedo modificar la estructura de los campos (darle mayor
longitud a los campos VARCHAR) desde la pestaa
estructura.

g.

(2) CREACIN DE BASE DE DATOS Y TABLAS A TRAVS DE


LA LNEA DE COMANDOS
CREACIN BASE DE DATOS EN MYSQL

http://mysql.conclase.net/curso/?cap=007
Desde la lnea de comandos mysql:
Cada conjunto de relaciones que componen un modelo completo forma una base de datos. Desde el
punto de vista de SQL, una base de datos es slo un conjunto de relaciones (o tablas), y para
organizarlas o distinguirlas se accede a ellas mediante su nombre. A nivel de sistema operativo, cada
base de datos se guarda en un directorio diferente.
Debido a esto, crear una base de datos es una tarea muy simple. Claro que, en el momento de crearla,
la base de datos estar vaca, es decir, no contendr ninguna tabla.
Vamos a crear y manipular nuestra propia base de datos, al tiempo que nos familiarizamos con la
forma de trabajar de MySQL.
Para empezar, crearemos una base de datos para nosotros solos, y la llamaremos "prueba". Para crear
una base de datos se usa una sentencia CREATE DATABASE:
mysql> CREATE DATABASE prueba;
Query OK, 1 row affected (0.03 sec)
mysql>

Podemos averiguar cuntas bases de datos existen en nuestro sistema usando la sentencia SHOW
DATABASES:
mysql> SHOW DATABASES;
+--------------------+
| Database
|
+--------------------+
| mysql
|
| prueba
|
| test
|
+--------------------+
3 rows in set (0.00 sec)
mysql>

A partir de ahora, en los prximos captulos, trabajaremos con esta base de datos, por lo tanto la
seleccionaremos como base de datos por defecto. Esto nos permitir obviar el nombre de la base de

datos en consultas. Para seleccionar una base de datos se usa el comando USE, que no es
exactamente una sentencia SQL, sino ms bien de una opcin de MySQL:
mysql> USE prueba;
Database changed
mysql>

CREAR TABLAS

Veamos ahora la sentencia CREATE TABLE que sirve para crear tablas.
La sintaxis de esta sentencia es muy compleja, ya que existen muchas opciones y tenemos muchas
posibilidades diferentes a la hora de crear una tabla. Las iremos viendo paso a paso, y en poco tiempo
sabremos usar muchas de sus posibilidades.
En su forma ms simple, la sentencia CREATE TABLE crear una tabla con las columnas que
indiquemos. Crearemos, como ejemplo, una tabla que nos permitir almacenar nombres de personas
y sus fechas de nacimiento. Deberemos indicar el nombre de la tabla y los nombres y tipos de las
columnas:
mysql> USE prueba
Database changed
mysql> CREATE TABLE gente (nombre VARCHAR(40), fecha DATE);
Query OK, 0 rows affected (0.53 sec)
mysql>

Hemos creado una tabla llamada "gente" con dos columnas: "nombre" que puede contener cadenas
de hasta 40 caracteres y "fecha" de tipo fecha.
Podemos consultar cuntas tablas y qu nombres tienen en una base de datos, usando la
sentencia SHOW TABLES:
mysql> SHOW TABLES;
+------------------+
| Tables_in_prueba |
+------------------+
| gente
|
+------------------+
1 row in set (0.01 sec)
mysql>

Pero tenemos muchas ms opciones a la hora de definir columnas. Adems del tipo y el nombre,
podemos definir valores por defecto, permitir o no que contengan valores nulos, crear una clave
primaria, indexar...
La sintaxis para definir columnas es:
nombre_col tipo [NOT NULL | NULL] [DEFAULT valor_por_defecto]
[AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string']
[definicin_referencia]

Veamos cada una de las opciones por separado.

Valores nulos

Al definir cada columna podemos decidir si podr o no contener valores nulos.


Debemos recordar que, como vimos en los captulos de modelado, aquellas columnas que son o
forman parte de una clave primaria no pueden contener valores nulos.
Veremos que, si definimos una columna como clave primaria, automticamente se impide que pueda
contener valores nulos, pero este no es el nico caso en que puede ser interesante impedir la
asignacin de valores nulos para una columna.
La opcin por defecto es que se permitan valores nulos, NULL, y para que no se permitan, se
usa NOT NULL. Por ejemplo:
mysql> CREATE TABLE ciudad1 (nombre CHAR(20) NOT NULL, poblacion INT NULL);
Query OK, 0 rows affected (0.98 sec)
Valores por defecto

Para cada columna tambin se puede definir, opcionalmente, un valor por defecto. El valor por
defecto se asignar de forma automtica a una columna cuando no se especifique un valor
determinado al aadir filas.
Si una columna puede tener un valor nulo, y no se especifica un valor por defecto, se usar NULL
como valor por defecto. En el ejemplo anterior, el valor por defecto para poblacion es NULL.
Por ejemplo, si queremos que el valor por defecto para poblacion sea 5000, podemos crear la tabla
como:
mysql> CREATE TABLE ciudad2 (nombre CHAR(20) NOT NULL,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.09 sec)
Claves primarias

Tambin se puede definir una clave primaria sobre una columna, usando la palabra
clave KEY o PRIMARY KEY.
Slo puede existir una clave primaria en cada tabla, y la columna sobre la que se define una clave
primaria no puede tener valoresNULL. Si esto no se especifica de forma explcita, MySQL lo har de
forma automtica.
Por ejemplo, si queremos crear un ndice en la columna nombre de la tabla de ciudades, crearemos la
tabla as:
mysql> CREATE TABLE ciudad3 (nombre CHAR(20) NOT NULL PRIMARY KEY,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.20 sec)

Usar NOT NULL PRIMARY KEY equivale a PRIMARY KEY, NOT NULL KEY o sencillamente KEY.
Personalmente, prefiero usar la primera forma o la segunda.

Existe una sintaxis alternativa para crear claves primarias, que en general es preferible, ya que es ms
potente. De hecho, la que hemos explicado es un alias para la forma general, que no admite todas las
funciones (como por ejemplo, crear claves primarias sobre varias columnas). Veremos esta otra
alternativa un poco ms abajo.
Columnas autoincrementadas

En MySQL tenemos la posibilidad de crear una columna autoincrementada, aunque esta columna
slo puede ser de tipo entero.
Si al insertar una fila se omite el valor de la columna autoinrementada o si se inserta un valor nulo
para esa columna, su valor se calcula automticamente, tomando el valor ms alto de esa columna y
sumndole una unidad. Esto permite crear, de una forma sencilla, una columna con un valor nico
para cada fila de la tabla.
Generalmente, estas columnas se usan como claves primarias 'artificiales'. MySQL est optimizado
para usar valores enteros como claves primarias, de modo que la combinacin de clave primaria, que
sea entera y autoincrementada es ideal para usarla como clave primaria artificial:
mysql> CREATE TABLE ciudad5 (clave INT AUTO_INCREMENT PRIMARY KEY,
-> nombre CHAR(20) NOT NULL,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.11 sec)
mysql>
Comentarios

Adicionalmente, al crear la tabla, podemos aadir un comentario a cada columna. Este comentario
sirve como informacin adicional sobre alguna caracterstica especial de la columna, y entra en el
apartado de documentacin de la base de datos:
mysql> CREATE TABLE ciudad6
-> (clave INT AUTO_INCREMENT PRIMARY KEY COMMENT 'Clave principal',
-> nombre CHAR(50) NOT NULL,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.08 secs)

Language SQL
Consulta SQL

Ejemplo 1
Seleccionar el nombre y la direccin de los contactos de la tabla agenda cuyo id sea mayor de 3,
ordenados por id.
SELECT nombre, direccion FROM agenda WHERE id>3 ORDER BY id

SELECT `nombre``direccion` FROM `agenda` WHERE `id`> 3 ORDER

BY `id`

Insertar SQL

Ejemplo
Se inserta un nuevo registro con los siguientes valores

INSERT INTO agenda (nombre, direccion, telefono, email) VALUES


('Antonio
Martn
Ruiz','Calle
de
los
riscos,
3
23568
Madrid','678945687','amartin@gmail.com');

Modificar registros

Para modificar los registros de una tabla se utiliza la sentencia UPDATE

Sintaxis
UPDATE
SET
"columna_1"
WHERE "condicin";

[nuevo

"nombre_tabla"
valor]

Descripcin:

UPDATE "nombre_tabla": tabla sobre la que se va a realizar la


modificacin.

SET "columna_1" = [nuevo valor]: se cambia el valor de la columna_1,


por el nuevo valor indicado.

WHERE "condicin": condicin que deben cumplir los registros para


que se realice la modificacin.

A diferencia de la sentencia SELECT, en este caso no se obtiene una subtabla


como resultadode la ejecucin de dicha sentencia.

Ejemplo
Se modifica el telfono del registro cuyo identificador es el 4.

UPDATE agenda SET telefono='654876523' WHERE id=4;

BORRAR REGISTROS

Para borrar registros de una tabla se utiliza la sentencia DELETE.

Sintaxis
DELETE
WHERE "condicin"

FROM

"nombre_tabla"

Ejemplo
Borrar el contacto cuyo identificador sea 1.

DELETE FROM agenda WHERE id=1;

Actividad
Crea 4 sentencias SQL que realicen lo siguiente:

Listar el contacto con id=3


SELECT * FROM agenda WHERE id=3;

Insertar un nuevo registro en la tabla agenda.


INSERT INTO agenda (nombre, direccion, telefono, email) VALUES
('David
lvarez','Calle
de
la
Felicidad,
5
04006
Almera','60545687','dalvarez@gmail.com');

Modificar el registro insertado anteriormente cambindole la direccin.


UPDATE agenda SET direccion= 'Avenida de la Felicidad, 5, 04006
Almera' WHERE id=11;

Borrar el registro insertado.


DELETE FROM agenda WHERE id=11;

CUESTIONARIOS

Qu significan las siglas URL? Uniform Resource Locator


El servidor siempre devuelve cdigo HTML al cliente, independientemente
de que la pgina solicitada sea esttica o dinmica.
El cdigo de un script se encuentra incrustado en el cdigo HTML.
Cul es un lenguaje de script del lado del cliente? JavaScript
Cmo se llama el gestor de Base de datos con el que se suele trabajar con PHP?
MySQL
Cual es un lenguaje del lado del servidor?

Php

Para qu se utilizan los blogs? Para mostrar informacin sobre un tema especfico.
Tanto en un sitio web esttico como en uno dinmico el servidor devuelve cdigo
Html
Si en una pgina se usa PHP, decimos que es una pgina Dinmica
Cmo se llama la URL de entrada a un sitio Web? Land page
El cdigo Script aparece ... incrustado en el cdigo html
Cmo se llama la secuencia de caracteres que se escribe en el navegador para
acceder a pginas Web? Url
Es obligatorio en un sitio web dinmico acceder a una base de datos? No
Indica una desventaja de un sitio Web dinmicoRequerimiento

tcnicos
superiores a uno esttico
En el paque Wamp, cmo se llama el servidor web? Apache
Cual es el mximo tiempo por defecto para un script php que viene
indicado en php.ini? 30
Permite Filezilla abrir varias sesiones con diferentes servidores? S
Qu significa que el cdigo PHP est embebido? Est incrustado en el cdigo Html
Se pueden arrancar por separado los servicios de Wamp? S
Cmo se llama el paquete que instala todo lo necesario para empezar a programar
en PHP? Wamp
Qu subdirectorio est asociado con la direccin http://localhost/tienda/listado.php?
c:\wamp\www\tienda\listado.php
Qu direccin Ip identifica a localhost? 127.0.0.1
Indica una caracterstica de la base de datos MySQL Velocidad b. Continua mejora de
su funcionamiento c. Robustez
Qu puerto por defecto usa el servidor Web para suministrar las pginas Web? 80
Cmo se llama el servidor Web que proporciona Microsoft?

IIS

La base de datos que viene en el paquete indicado anteriormente esMySQL

Cuales son las caractersticas del lenguaje PHP? De alto nivel, de cdigo
abierto e interpretado
Entre qu smbolos se delimita un script PHP? <?php y ?>
Con qu smbolo finaliza todas las instrucciones de un script PHP? ;
Qu extensin debe de tener el fichero que contiene un script PHP? .php
Qu significa que PHP es un lenguaje de alto nivel? Que las sentencias son similares
al lenguaje humano
Indica cual es una fase del desarrollo de un programa Todas son correctas
Qu realiza el comando echo en un script PHP? Devuelve el contenido que se incluye
entre comillas en la pgina html
El cdigo php va embebido en el cdigo html de la pgina WebS

Cmo se indican los comentarios en un script PHP? /* */


Indica el nombre de un programa para la comprobacin online de cdigo
PHPCodepad
Indica la relacin entre subdirectorio local y la url
http://localhost/biblioteca/listado.php c:\wamp\www\biblioteca/listado.php
Indica un error frecuente a la hora de programar en php. Todas son correctas
En qu subdirectorio normalmente se instala Apache y hay que colocar las pginas
html? c:\wamp\www
Qu codificacin hay que utilizar en Notepad ++? UTF-8 sin BOM

Con qu smbolo comienzan todas las variables en PHP? $


Cmo se suelen definir las constantes en PHP? Maysculas.
Es obligatorio utilizar las llaves {} en las sentencias if? No, si slo
existe una sola instruccin.
En qu estructura de control se ejecuta como mnimo una vez el bloque
de instruccionesincluidas entre llaves? Do..While
El operador * es un operador Binario
Qu tipo de variable es $variable si contiene el valor 4.5? Float
Qu funcin se utiliza para definir las constantes? define()
Qu valor devuelve la siguiente expresin: True xor True? False
Cmo se denomina el siguiente operador (.=)? Operador de asignacin sobre
concatenacin
Qu palabra reservada tenemos en Switch para cuando no coincide ningun valor con
la variable a comparar? Default
Con qu simbolo finalizan todas las instrucciones PHP? ;
Es necesario declaras las variables en PHP? No
$contador=1;
while ($contador<6) {
++$contador;
}

Seleccione una: 6
Cuando se ejecutan las sentencias del bloque ELSE en un sentencia IF? Cuando la
expresin es falsa

Cual es la palabra reservada para devolver el valor de una funcin?


Return
Qu palabra reservada se utiliza para incluir un fichero php dentro de otro
fichero php? include()
Qu valor devuelve la funcin strlen($valor1)?
El nmero de caracteres del string contenido en $valor1.
En qu grupo de funciones se encuentra clasificada la funcin abs()?En
las funciones matemticas
Normalmente, entre que etiquetas se definen las funciones PHP?
&lt;HEAD&gt;....&lt;/HEAD&gt;
Qu realiza la funcin STR_REPLACE()? Reemplaza caracteres dentro de una cadena
de caracteres

Cual es el segundo paso cuando se trabajan con funciones? Invocar la funcin


Cuantas funciones predefinidas hay en PHP aproximadamente? 4500
Cmo se envan por defecto los parmetros en las funciones PHP? Por valor
Se pueden incluir varias sentencias include() en un script PHP? S
Qu devuelve el siguiente cdigo? Digi
Qu parmetro es opcional en la funcin substr()?$length
Es obligatorio usar parmetros en las funciones? No
Se pueden combinar valores por defecto y normales en los parmetros de una

Si
Qu atributo de la etiqueta form contiene la URL que procesar la
informacin del formulario? Action
Qu mtodo de envo es ms conveniente si se enva la contrasea en el
formulario HTML? POST
Cual es el atributo de la etiqueta form que se recupera como variable en
el script PHP? Name
Se puede utilizar la funcin isset() tanto en POST como en GET? S.
funcin?

Qu tipo de comillas se utilizan en el array de recuperacin de los campos del


formulario? Simples
Qu valor puede devolver la funcin isset()?True o False
Qu atributo de la etiqueta form indica el mtodo de envo? Method
Qu tipo de campo de formulario se indica con la etiqueta <INPUT
TYPE="checkbox">?Para elegir uno o varios valores de varias opciones
En qu mtodo de envo los campos se separan con el smbolo & en la URL? GET
Indique un motivo por el cual isset pueda devolver false. Todas son correctas
Qu atributo es el que se recupera en el script PHP en un campo del tipo select?

Name
Qu nombre tiene el array que contiene los valores del formulario que se enva por

el mtodo POST? $_POST


Para qu se utilizan los campos del tipo <INPUT TYPE="radio">?Para elegir un valor

de varias opciones
Qu puede realizar un script PHP con la informacin enviada desde un formulario?
Todas son correctas3

Los registros corresponden a ....


Las filas
Indica que gestor de base de datos es gratuito y de cdigo abierto
PostgreSql

Qu sentencia SQL permite modificar los registros de una tabla?


UPDATE
Qu sentencia SQL devuelve los nombres de los contactos con id
mayor que 2 ordenados por el nombre? SELECT nombre FROM agenda
where id>2 ORDER by nombre;

Para qu sirve la opcin WHERE en una sentencia SELECT? Para indicar las

condiciones que deben cumplir los registros


En una tabla de una base de datos los campos corresponden a ... Las columnas
Qu parmetros son obligatorios para conectar con la base de datos con

mysqli_connect()? servidor, usuario, contrasea, base de datos


Qu sentencia SQL borra todos los registros de la tabla agenda ? DELETE FROM

agenda
Con las sentencias DML podemosInsertar registros

Qu ocurre cada vez que se ejecuta la sentencia mysqli_fetch_row()? Se

obtiene

un registro de la subtabla

A qu tipo de datos se le puede indicar el atributo autonumrico? Entero


A travs de que direccin URL se accede a phpmyadmin en local?
http://localhost/phpmyadmin/
Indique qu gestor no es gratuitoSql Server
Qu extensin de PHP para conectar con base de datos es ms reciente? mysqli_

Curso Iniciacin a la programacin


web: PHP 03/11/2015 Grupo 002
Comenzado el
Estado
Finalizado en
Tiempo
empleado
Calificacin
Pregunta

mircoles, 25 de noviembre de 2015, 12:18


Finalizado
mircoles, 25 de noviembre de 2015, 12:19
1 minutos 31 segundos

10,00 de 10,00 (100%)

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
El operador * es un operador
Seleccione una:
a. Unario

b. * no es un operador

c. Binario

d. Ternario

Retroalimentacin
La respuesta correcta es: Binario
Pregunta

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
Cmo se indican los comentarios en un script PHP?
Seleccione una:
a. /? ?/

b. /* /*

c. // //

d. /* */

Retroalimentacin
La respuesta correcta es: /* */
Pregunta

Correcta
Punta 1,00 sobre 1,00

Marcar pregunta

Enunciado de la pregunta
Qu tipo de comillas se utilizan en el array de recuperacin de los campos
del formulario?
Seleccione una:
a. Dobles

b. Dobles o simples.

c. Simples

d. No hacen falta comillas

Retroalimentacin
La respuesta correcta es: Simples
Pregunta

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
Qu ocurre cada vez que se ejecuta la sentencia mysqli_fetch_row()?
Seleccione una:

a. Se obtiene un registro de la subtabla

b. Ninguna es correcta

c. Se obtiene el ltimo registro de la subtabla

d. Se obtiene un campo de la subtabla

Retroalimentacin
La respuesta correcta es: Se obtiene un registro de la subtabla
Pregunta

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
Indique un motivo por el cual isset pueda devolver false.
Seleccione una:
a. Porque el campo se haya querido dejar vaco

b. Todas son correctas

c. Porque se haya olvidado completarlo

d. Porque no se haya definido el atributo NAME

Retroalimentacin
La respuesta correcta es: Todas son correctas
Pregunta

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
Para qu se utilizan los blogs?
Seleccione una:
a. Para vender productos por internet.

b. Ninguna es correcta

c. Para impartir cursos online

d. Para mostrar informacin sobre un tema especfico.

Retroalimentacin
La respuesta correcta es: Para mostrar informacin sobre un tema
especfico.
Pregunta

Correcta
Punta 1,00 sobre 1,00

Marcar pregunta

Enunciado de la pregunta
Qu direccin Ip identifica a localhost?
Seleccione una:
a. 127.0.0.1

b. 128.0.0.1

c. 127.0.1.1

d. 127.1.0.1

Retroalimentacin
La respuesta correcta es: 127.0.0.1
Pregunta

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
A travs de que direccin URL se accede a phpmyadmin en local?
Seleccione una:

a. http://www/localhost/phpmyadmin/

b. http://phpmyadmin/

c. http://localhost/www/phpmyadmin/

d. http://localhost/phpmyadmin/

Retroalimentacin
La respuesta correcta es: http://localhost/phpmyadmin/
Pregunta

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
Qu palabra reservada tenemos en Switch para cuando no coincide ningun
valor con la variable a comparar?
Seleccione una:
a. unique

b. break

c. last

d. default

Retroalimentacin
La respuesta correcta es: default
Pregunta

10

Correcta
Punta 1,00 sobre 1,00
Marcar pregunta

Enunciado de la pregunta
Qu puede realizar un script PHP con la informacin enviada desde un
formulario?
Seleccione una:
a. Interactuar con una base de datos

b. Llamar a otra pgina PHP

c. Todas son correctas

d. Mostrar la informacin recibida

Retroalimentacin
La respuesta correcta es: Todas son correctas

Вам также может понравиться