You are on page 1of 182

Programacin Web

PHP: Hypertext Preprocessor

Copyright 2004

Descripcin del Curso


El curso de PHP est orientado al estudio de los fundamentos y caractersticas bsicas del lenguaje PHP (Preprocesador de Hipertexto PHP). El alcance de este curso es proporcionar un entendimiento bsico de los conceptos relacionados al manejo de scripts dinmicos del lado de servidor utilizando PHP para la construccin de Aplicaciones Web.

Copyright 2004

Unidad 1 Fundamentos de PHP

Copyright 2004

Objetivos de Aprendizaje
Describir PHP, sus caractersticas y su evolucin Discutir los beneficios y funcionalidades de PHP

Explicar cmo funciona un script hecho en PHP


Describir la arquitectura de PHP Crear un script sencillo en PHP

Copyright 2004

Qu es PHP?
PHP, acrnimo de PHP: Hypertext Preprocessor

(Preprocesador de Hipertexto PHP), es un lenguaje interpretado de alto nivel que se ejecuta del lado del servidor.
PHP est especialmente diseado para desarrollos

web y puede ser embebido en pginas HTML.


La meta de este lenguaje es permitir a los

desarrolladores web crear pginas dinmicas de una manera rpida y sencilla.


PHP es "Open Source" (Cdigo Abierto).

Copyright 2004

Origen y Evolucin de PHP


PHP (Personal Home Page) 1995 Creado originalmente por Rasmus Lerdorf
PHP/FI (Personal Home Page / Form

Interpreter) 1997

PHP 3.0 (PHP: Hypertext Preprocessor) 1998

Rediseado por Andi Gutmans y Zeev Zuraski


PHP 4.0 2000 PHP 5.0 2004
Copyright 2004

PHP 5.0
PHP

5 posee un nuevo modelo de objetos completamente reestructurado y muchas otras caractersticas adicionales. Zend 2.0.

Es principalmente manejado por su ncleo, el motor

Las nuevas caractersticas Orientadas a Objetos incluyen:


Mtodos finales (mtodos que no pueden ser

sobrescritos).
Clases finales (clases de las cuales ninguna otra

clase puede heredar).


Copyright 2004

PHP 5.0 2
Modificadores de acceso para atributos y mtodos. Clases y mtodos abstractos. Clases y mtodos

estticos. Interfaces. Clonacin explcita de objetos.


Otras caractersticas incluyen:
Nueva administracin de memoria que permite

trabajar eficientemente en entornos multihilos.


Manejo mejorado de excepciones.

Soporte para XML, Web Services y SOAP.

Copyright 2004

Caractersticas de PHP
Lenguaje de script del lado del servidor. Se puede embeber o incrustar en HTML. Trabaja en plataformas cruzadas (cross-plataform). Lenguaje de Cdigo Abierto (Open Source).

Copyright 2004

Funcionalidades y Beneficios de PHP


Posibilidad de usar programacin procedimental o

programacin orientada a objetos.


Soporte para una gran cantidad de bases de datos.
Soporte para ODBC. Soporte para comunicarse con otros servicios

usando protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP...

Copyright 2004

Funcionalidades y Beneficios de PHP 2


La extensin de CORBA puede ser utilizada para

acceder a objetos remotos.


Posee

caractersticas procesamiento de texto.


acceder a documentos XML.

muy

tiles

para

el

Soporta los estndares SAX y DOM para procesar y Tambin se puede utilizar la extensin XSLT para

transformar documentos XML.

Copyright 2004

Por qu utilizar PHP?

PHP fue especialmente diseado para trabajar en el

entorno web, esto permite que funcione en forma ms rpida y eficiente con HTML.
PHP no est vinculado a ningn sistema operativo

ni servidor web.

Copyright 2004

Funcionamiento de PHP

PHP se puede incorporar directamente dentro de

cdigo HTML utilizando etiquetas especiales de inicio y fin (<?php ... ?> <? ... ?>).

Copyright 2004

Formas de utilizar PHP

Scripts del lado del servidor.


Scripts en lnea de comandos.

Aplicaciones de interfaz grfica.

Copyright 2004

Arquitectura de PHP

Copyright 2004

Instalacin de PHP 5.0


PHP se puede configurar para ejecutar scripts del

lado del servidor, de dos formas:


Mdulo SAPI
CGI

Existen dos

formas para instalar PHP bajo

Windows:
A travs de un asistente de instalacin. Manualmente.

Copyright 2004

Cmo utilizar PHP?


El cdigo PHP

puede ser escrito en cualquier

editor de texto.
Los archivos creados deben ser guardados con la

extensin .php.
Se deben colocar unas etiquetas delimitadoras de

inicio y fin de cdigo PHP: <?php ... ?> o <? ... ?>
Guarde el archivo .php, en el directorio raz del

servidor web o en un directorio dentro del mismo.


Acceda al archivo creado utilizando el protocolo

HTTP. Por ejemplo,

http://localhost/archivo.php
Copyright 2004

Resumen
Se

describi PHP, sus caractersticas y su evolucin PHP

Se discutieron los beneficios y funcionalidades de Se explic cmo funciona un script hecho en PHP Se describi la arquitectura de PHP Se cre un script sencillo en PHP

Copyright 2004

Unidad 2 Elementos del Lenguaje PHP

Copyright 2004

Objetivos de Aprendizaje
Explicar la sintaxis bsica de PHP Describir el uso de variables y constantes Indicar los diferentes tipos de datos que posee

PHP
Describir el uso de los operadores disponibles

en PHP
Discutir las estructuras de control de PHP

Copyright 2004

Sintaxis Bsica de PHP


Delimitar los bloques de cdigo PHP
<?php ... ?>

<script language="php"> ... </script>


<? ... ?> Se puede utilizar cualquier combinacin de los

formatos de etiquetas dentro de cdigo PHP.


Es recomendable utilizar el formato de etiquetas

completo (<?php ... ?>), pues se garantiza la compatibilidad entre diferentes plataformas.
Las instrucciones PHP finalizan con punto y coma.
Copyright 2004

Sintaxis Bsica de PHP 2


Uso de maysculas y minsculas
Las variables y constantes definidas por el usuario

son sensibles a maysculas y minsculas.


Las variables y constantes predefinidas de PHP

son sensibles a maysculas y minsculas.


Las funciones definidas por el usuario no son

sensibles a maysculas y minsculas.


Las funciones incorporadas de PHP no son

sensibles a maysculas y minsculas.

Copyright 2004

Sintaxis Bsica de PHP 3


Comentarios
El doble backslash ( // ) y el carcter numeral ( # ),

sirven para comentar una sola lnea.


<?php // Esto es un comentario

?>

La combinacin de de caracteres /* y */, sirve para

comentar varias lneas, formando un bloque de comentarios.


<?php /* Esto es un comentario */ ?>
Copyright 2004

Sintaxis Bsica de PHP 4


Mostrar la salida en el navegador
Funcin print(S) <?php print(<strong>Hola!</strong><br>\n); ?>

Funcin echo(S) <?php echo(<strong>Hola!</strong><br>\n); ?>


Etiquetas <?= ?> <?=<strong>Hola!</strong><br>\n?>
Copyright 2004

Variables en PHP
Nombres de Variables
El nombre de las variables debe comenzar con el

signo $ seguido con una letra en los rangos (A Z , a z) o el caracter underscore (_). El nombre de una variable no puede comenzar con un nmero.
rangos (A Z, a z), nmeros (0 9), el carcter especial under score (_) y los caracteres ASCII del 127 al 255 (extendidos). maysculas y minsculas.

Luego puede tener una combinacin de letras en los

Los nombres de las variables son sensibles a

Copyright 2004

Tipos de Variables en PHP


En PHP las variables se pueden clasificar en dos tipos, de acuerdo a los valores que se almacenan en ellas:
Escalares Arreglos Vectores o arreglos unidimensionales

Matrices o arreglos bidimensionales


Arreglos n-dimensionales
Copyright 2004

Variables Escalares
Una variable escalar se usa para almacenar un

valor individual.
No se necesita declarar explcitamente un tipo de

dato para una variable en PHP. Adems una variable puede contener cualquier tipo de dato.
Se utiliza el operador = (igualdad), para asignarle

valores a las variables. <?php

$var=10; $var=16.75; $var4 = $var5;


$var2=PHP 5.0; $var3=NULL;

?>
Copyright 2004

Variables escalares 2
Asignacin de variables por Referencia
La variable a la que se le asigna la referencia se

convierte en un alias de" o "apunta a" la variable original asignada. y viceversa.

Los cambios a la nueva variable afectan a la original Para asignar una variable por referencia se utiliza el

caracter ampersand (&).


<?php

$var1 = &$var2 ?>


Copyright 2004

Variables Arreglos
Los arreglos (arrays) son colecciones de nmeros,

cadenas u otros arreglos, ensamblados en una sola variable, permitiendo guardar mltiples valores, a diferencia de las variables escalares.
Arreglos unidimensionales:

$vector[i] = $var1;
Arreglos bidimensionales:

$matriz[i][j] = $var2;
Arreglo de multidimensionales:

$multi[i][j][k][l] = $var4;
Copyright 2004

Creacin de Arreglos
Crear un arreglo por asignacin de valores

indicando un ndice:
<?php #Creando un arreglo asignacin de valores unidimensional por

$arreglo[0] = primer valor; $arreglo[1] = 2; $arreglo[2] = 3.5; $arrreglo[] = ltimo valor; ?>
Copyright 2004

Creacin de Arreglos 2
Crear un arreglo por asignacin de valores

indicando un ndice:
<?php #Creando un arreglo asignacin de valores $matriz[0][0] = 100; $matriz[0][1] = 200; $matriz[1][0] = 10.75; $matriz[1][1] = 20.75; ?>
Copyright 2004

bidimensional

por

Creacin de Arreglos
Crear un arreglo por asignacin de valores

indicando una clave:


<?php #Creando un arreglo asignacin de valores unidimensional por

$arreglo[cero] = primer valor; $arreglo[uno] = 2; $arreglo[dos] = 3.5; $arrreglo[] = ltimo valor; ?>
Copyright 2004

Creacin de Arreglos 3
Crear un arreglo por asignacin de valores

indicando una clave:


<?php # Creando un arreglo asignacin de valores bidimensional por

$matriz[cero][cero] = 100; $matriz[cero][uno] = 200; $matriz[uno][cero] = 10.75; $matriz[uno][uno] = 20.75; ?>


Copyright 2004

Creacin de Arreglos 4
Crear un arreglo unidimensional utilizando la

funcin array() e ndices numricos:


<?php # Crear un arreglo unidimensional con array() $arreglo1 = array(10,20,30,40,50); $arreglo2 = array("carro","moto","patn");

# Crear un arreglo unidimensional con array()


$arreglo = array(0=>10,1=>20,2=>30,3=>40);

?>
Copyright 2004

Creacin de Arreglos 5
Crear un arreglo unidimensional utilizando

la

funcin array() e ndices asociativos


<?php #Creando un arreglo unidimensional con array() $colores = array("am"=>"amarillo", "az"=>"azul", "vd"=>"verde",

"rj"=>"rojo",
"ng"=>"negro"

); ?>
Copyright 2004

Creacin de Arreglos 6
Crear un arreglo bidimensional utilizando

la

funcin array() e ndices asociativos


<?php #Creando un arreglo bidimensional con array() $frutas=array(
"pera"=>array("color"=>"amarillo","sabor"=>"dulce), "manzana"=>array("color"=>"rojo","sabor"=>"dulce"),

"limon"=>array("color"=>"verde","sabor"=>"cido")

); ?>
Copyright 2004

Alcance de las Variables


El alcance de una variable es el contexto dentro

del cual la variable est definida.


La mayor parte de las variables PHP tienen alcance

global.
Dentro de las funciones definidas por el usuario se

tiene alcance local.


Cualquier variable que se use dentro de una funcin

est limitada al contexto local de la funcin, por defecto.


En

PHP, las variables globales deben ser declaradas explcitamente como globales dentro de la funcin si van a ser utilizadas.
Copyright 2004

Alcance de las Variables 2


Declarar variables globales dentro de funciones

utilizando la palabra clave global


<?php $glob1 = 10; $glob2 = 20; function sumaGlob(){

global $glob1, $glob2;


$glob2 = $glob1 + $glob2; } sumaGlob(); echo $glob2; // Se imprime 30 ?>
Copyright 2004

Alcance de las Variables 3


Declarar variables globales dentro de funciones

utilizando la variable predefinida $GLOBALS


<?php $glob1 = 10; $glob2 = 20; function sumaGlob(){

$GLOBALS["glob2"] = $GLOBALS["glob1"]+
$GLOBALS["glob2"]; } sumaGlob(); echo $glob2; // Se imprime 30 ?>
Copyright 2004

Variables Estticas
Una variable esttica (static) existe slo en el

alcance local de la funcin, pero no pierde su valor cuando la ejecucin sale del alcance local.
<?php
function prueba(){ static $estatica = 0;

echo $estatica;
$estatica++; print $estatica; }

prueba(); // se imprime 1
prueba(); // se imprime 2 prueba(); // se imprime 3 ?>
Copyright 2004

Variables Predefinidas
PHP proporciona una gran cantidad de variables

predefinidas que se utilizan para almacenar valores especficos cuando se ejecutan los scripts.
Estas variables pueden ser accedidas dentro del

script, lo cual resulta muy til en el desarrollo de programas.


El nmero, propsito y nombre de esas variables

vara dependiendo del servidor que se est ejecutando, versin, configuracin de dicho servidor y otros factores.
EJEMPLO: $GLOBALS, $_SERVER, $_ENV
Copyright 2004

Constantes
Una constante es un identificador que hace

referencia a un valor simple. El alcance de una constante es global.


El nombre de las constantes debe comenzar con

una letra en los rangos (A Z , a z), o el caracter underscore (_), seguido por una combinacin de letras, nmeros (0 9), underscore (_) y los caracteres ASCII del 127 al 255 (extendidos).

Solo pueden ser definidas usando la funcin

define(), nunca por simple asignacin.


No pueden ser redefinidas o eliminadas despus de

establecerse.
Slo pueden contener valores escalares.
Copyright 2004

Constantes 2
Definir una constante en PHP.
<?php define("MI_CONSTANTE", "Hola Mundo PHP!"); echo MI_CONSTANTE; //Imprime Hola Mundo PHP! ?>

La funcion defined(), se utiliza para determinar si

una constante ya est definida.


<?php $t = defined("MI_CONSTANTE"); //retorna true $f= defined("OTRA_CONSTANTE"); // retorna false ?>
Copyright 2004

Constantes Predefinidas en PHP


Las constantes predefinidas guardan informacin

acerca de la configuracin de PHP o de las extensiones.


Constantes Base Predefinidas: Son constantes

definidas en el ncleo de PHP, el motor Zend y los mdulos SAPI. Por ejemplo: PHP_VERSION, PHP_OS.
Constantes

Estndar Predefinidas: Son constantes definidas en PHP por defecto. Se utilizan para indicar opciones en algunas instrucciones. Por ejemplo: SORT_ASC, M_SQRT2.

Copyright 2004

Tipos de Datos
Nmeros Enteros Nmeros Punto Flotante Lgicos o Booleanos Cadenas En PHP el tipo de dato no se asigna explcitamente

a una variable.
Sin embargo, si se quiere obligar a que una

variable se convierta a un tipo concreto, se puede utilizar la funcin settype($var,$tipo).


Copyright 2004

Interpolacin de Cadena
Interpolacin de cadena significa que siempre que

una variable escalar es colocada dentro de una cadena con comillas dobles, se mostrar su contenido, no el nombre de la variable.
<?php $mensaje = "Bienvenido a IBM"; print "$mensaje"; ?>

La salida ser la siguiente:


Bienvenido a IBM
Copyright 2004

Interpolacin de Cadena2
El backslash (\) se utiliza, del mismo modo que en

C o Perl, como un caracter de escape.


Si el backslash precede al $ dentro de las comillas

dobles, ser interpretado como un $ y el valor de la variable no ser sustituido


<?php $mensaje = "Bienvenido a IBM"; print \$mensaje"; ?>

La salida ser la siguiente:


$mensaje
Copyright 2004

Secuencias de Escape..
Secuencia \n \r \t \\ \$ \" \' Significado Nueva lnea Retorno de carro Tabulacin horizontal Barra invertida (backslash) Signo dlar Comilla doble Comilla simple

Copyright 2004

No Interpolacin de Cadena
Cuando una variable es colocada dentro de comillas

simples, no ser interpolada en la cadena.


<?php $mensaje = "Bienvenido a IBM"; print $mensaje; ?>

La salida ser la siguiente:


$mensaje

Copyright 2004

Conversin de Tipos
En PHP el tipo de una variable se determina por el

contexto en el que se usa esa variable.


Esto significa que si se le asigna un valor de cadena

a la variable $var, $var se convierte en string.


Si luego se le asigna un valor entero, se convierte

en una variable de tipo integer.

Un ejemplo de conversin de tipo automtica en

PHP es el operador suma '+' (y tambin el resto de los operadores aritmticos).

Copyright 2004

Conversin de Tipos 2
<?php # Conversin automtica de tipos # $var1="100"; $var2="25.75"; echo $var1+$var2; //Imprime 125.75 echo $var1*$var2; //Imprime 2575 $var3="casa"; $var4=20; echo $var3+$var4; //Imprime 20 echo $var1*$var2; //Imprime 0 ?>
Copyright 2004

Conversin de Cadenas
Cuando se hacen conversiones de cadenas a

valores numricos, la cadena se evalua como un punto flotante si contiene alguno de los caracteres '.', 'e', o 'E' (exponente). En caso contrario, se evalua como un entero.
Con la funcin de PHP gettype($variable) se puede

conocer el tipo de dato de la variable.


Con

la funcin de PHP var_dump($variable) adems de mostrar el tipo de dato de la variable, muestra el valor que contiene.

Copyright 2004

Casting de Variables
Otra forma de hacer conversin de tipos es hacer

casting.

Para hacer el casting de variables en PHP el

nombre del tipo deseado se escribe entre parntesis antes de la variable a la que se pretende que adquiera un tipo especfico.
$entero = 10; // Entero
$flotante = (double)$entero; // Punto flotante

$cadena = (string)"Hola!"; // String

Copyright 2004

Casting de Variables 2
Casting de Tipos
Tipo (int), (integer) (real),(double), float) (string) (boolean) (array) Conversin Convierte a entero Convierte a doble Convierte a cadena Convierte a booleano Convierte a arreglo

(object)

Convierte a objeto
Copyright 2004

Operadores en PHP
Operador de Asignacin
El operador de asignacin en PHP es el signo de

igualdad =. Por ejemplo, $var1 = $var2.

Operador de Concatenacin
El operador de concatenacin en PHP es el punto

.. Sirve para unir dos valores, no sumarlos.

Copyright 2004

Operadores Aritmticos
Operador

Descripcin Adicin o suma. Suma de $a ms $b Substraccin o resta. Diferencia entre $a y $b Multiplicacin. Producto de $a por $b Divisin. Cociente de $a entre $b Resto o Mdulo. Resto de $a entre $b

Ejemplo $c = $a + $b $c = $a - $b $c = $a * $b $c = $a / $b $c = $a % $b

+ * / %

Copyright 2004

Operadores de Comparacin
Operador

Descripcin Igual. Se evala TRUE si $a es igual a $b

Ejemplo $a == $b

==

=== !=
<> !==

Idntico. Se evala TRUE si $a es igual a $b y son del mismo tipo Diferente. Se evala TRUE si $a es distinto a $b
Diferente. Se evala TRUE si $a es distinto a $b No Idntico. Se evala TRUE si $a no es igual a $b o no son del mismo tipo Mayor que. Se evala TRUE si $a es mayor que $b Menor que. Se evala TRUE si $a es menor que $b Mayor o igual que. Se evala TRUE si $a es mayor o igual que $b Menor o igual que. Se evala TRUE si $a es menor o igual que $b

$a === $b $a != $b
$a <> $b $a !== $b

>
< >= <=

$a > $b
$a < $b $a >= $b $a <= $b
Copyright 2004

Operadores Lgicos
Operador

Descripcin Y lgico. Se evala TRUE si tanto $a como $b son TRUE Y lgico. Se evala TRUE si tanto $a como $b son TRUE

Ejemplo $a && $b $a and $b

&& and

||
or ! xor

O lgico. Se evala TRUE al menos una de las dos, $a o $b, es TRUE


O lgico. Se evala TRUE al menos una de las dos, $a o $b, es TRUE NO. Se evala TRUE si $a es FALSE. Niega el valor de $a O exclusivo. Se evala TRUE si alguna de las dos, $a o $b, es TRUE, pero no ambas

$a || $b
$a or $b !$a $a xor $b

Copyright 2004

Operadores de Incremento / Decremento


Operador Descripcin Pre-incremento. Aumenta el valor $a en 1 y luego retorna ese valor. Post-incremento. Retorna el valor de $a y luego aumenta su valor en 1. Pre-decremen|to. Reduce el valor de $a en 1 y luego retorna ese valor. Post-decremento. Retorna el valor de $a y luego reduce su valor en 1. Ejemplo $var1=5; $var2=++$var1; //$var2=6 y $var1=6 $var1=5; $var2=$var1++; //$var2=5 y $var1=6 $var1=5; $var2=--$var1; //$var2=4 y $var1=4 $var1=5; $var2=$var1--; //$var2=5 y $var1=4
Copyright 2004

++$var

$var++

--$var

$var--

Operadores Combinados
Operador +=
-= *= /= %=

Descripcin Suma y asigna


Resta y asigna Multiplica y asigna Divide y asigna Calcula el mdulo y asigna

Ejemplo
$var1=20; $var1+=10; //$var1 = 30 $var1=20; $var1-=10; //$var1 = 10 $var1=20; $var1*=10; //$var1=200 $var1=20; $var1/=10; //$var1=2 $var1=20; $var1%=10; //$var1=0 $var1="Hola "; $var1.= "Mundo!"; //$var1= Hola Mundo!
Copyright 2004

.=

Concatena y asigna

Estructuras de Control
Estructuras Condicionales
Condicional If Condicional Ifelseif

Condicional Ifelse

Sentencia Switch

Estructuras Cclicas
While

Do While
For Foreach
Copyright 2004

Resumen
Se explic la sintaxis bsica de PHP Se describi el uso de variables y constantes Se indic los diferentes tipos de datos que posee

PHP
Se describi el uso de los operadores disponibles

en PHP
Se discuti las estructuras de control de PHP

Copyright 2004

Unidad 3 Funciones y Extensiones en PHP

Copyright 2004

Objetivos de Aprendizaje
Explicar y desarrollar las funciones definidas por

el usuario
Describir y utilizar las funciones del lenguaje

incorporadas en PHP
Indicar cmo se incorporan las extensiones en

PHP

Copyright 2004

Funciones en PHP
Las Funciones son un conjunto de instrucciones

escritas en un lenguaje de programacin que permite realizar varias operaciones con datos suministrados en forma de argumentos a la funcin.
En

PHP existe una gran divisin de las funciones que son:


Funciones definidas por el usuario Funciones propias de PHP

Copyright 2004

Funciones definidas por el Usuario


function miFuncion ($arg1,$arg2, ...,$arg_n) { sentencias;

return valorDeRetorno;
}

// Invocando a las funciones


miFuncion ($valor_1,$valor_2, ..., $valor_n);

miFuncion();
$resultado = miFuncion();

Copyright 2004

Funciones Condicionales
<?php $condicion = true; ultima(); // Se puede invocar aqu! if ($condicion) { function funcionCondicional() {

echo "Si la condicin se cumple, existo!!"; }


}

if ($condicion) { funcioncondicional(); }
function ultima() { echo "Yo existo desde el inicio del programa!"; } ?>
Copyright 2004

Funciones Anidadas
<?php function primera() { function segunda() {

echo "No existo hasta que primera() sea llamada"; } } /* Aqu todava no podemos invocar a segunda()*/

primera();
/* Ahora si podemos invocar a segunda()*/ segunda(); ?>
Copyright 2004

Retorno de Funciones
Una funcin retorna valores usando la sentencia

return. Se puede retornar cualquier tipo de valor, incluyendo arreglos y objetos.


<?php
function listaAutos() { return array (carro",patn" , motocicleta"); } list ($auto1, $auto2, $auto3) = listaAutos(); ?>

Copyright 2004

Paso de Parmetros a las Funciones


Parmetros por valor
En PHP, por defecto, los parmetros de una funcin

se pasan por valor.


Parmetros por referencia
Cuando un parmetro se pasa por referencia,

si el valor del parmetro cambia dentro de la funcin, este cambio se ve reflejado fuera de ella.

Para

pasar un parmetro por referencia se antepone un ampersand (&) al nombre del parmetro en la definicin de la funcin.
Copyright 2004

Paso de Parmetros a las Funciones 2


Parmetros por defecto
<?php

function sumar30($num1, $num2 = 30){


return "La suma es: ".($num1 + $num2); } echo sumar30(20); echo sumar30(50,50); ?> // Muestra 50 // Muestra 100

Copyright 2004

Paso de Parmetros a las Funciones 3


Nmero de Parmetros Variables
<?php

function miFuncion() {
$numargs = func_num_args(); echo "Nmero de parmetros: $numargs\n"; } miFuncion(10,30,20);//'Nmero de parmetros: 3' ?>

Copyright 2004

Paso de Parmetros a las Funciones 4


Funcin func_num_args(): Retorna el nmero de

parmetros pasados a la funcin.


Funcin func_get_arg(pos): Retorna el parmetro

que est en la posicin pos en la lista de parmetros de una funcin.

Funcin func_get_args(): Devuelve un arreglo en el cual cada elemento corresponde a un elemento de la lista de parmetros de la funcin.

Copyright 2004

Funciones definidas por el Lenguaje


Funciones de Cadena Funciones de Fecha y Hora Funciones Matemticas Funciones de Arreglos Funciones de Manejo de Archivos

Copyright 2004

Funciones de Cadena
printf (formato[,argumentos]) sprintf (formato[,argumentos]) trim(str), ltrim(str), rtrim(str) y chop(str) substr(str,comienzo,cantidad)

substr_count(cadena, subcadena)
strlen(str)

strtolower(str) y strtoupper(str)
implode(marca,arreglo) y explode(marca,cadena,lim)

htmlentities(str) y urlencode(str)
Copyright 2004

Funciones de Fecha y Hora


date(formato[,timestamp]) time()

Copyright 2004

Funciones Matemticas
round(num,precision) abs(valor) rand(lim_min,lim_max) srand(expr)

Copyright 2004

Funciones de Arreglos
asort(arr) arsort(arr), ksort(arr), sort(arr) rsort(arr) reset(arreglo) next(arreglo) each() print_r(variable) list()
Copyright 2004

Funciones de Manejo de Archivos


fopen(nombrearchivo,modo) fclose(punteroArch) filesize(punteroArch) fputs(punteroArch) fwrite(punteroArch) fpassthru(punteroArch) fgets(punteroArch,n) fgetss(punteroArch,n) fread(punteroArch,n) feof(punteroArch)
Copyright 2004

Incorporacin de Extensiones en PHP


Los mdulos externos o extensiones en PHP

permiten incorporar mayor funcionalidad a los programas que desarrollemos.


Una extensin puede ofrecer la funcionalidad de

interactuar con una base de datos especfica, convertir los elementos de XML en objetos y usarlos dentro del cdigo, utilizar los objetos de Java, etc.
Para cargar una extensin especfica lo podemos

hacer de forma automtica (o por defecto), o de forma dinmica.

Copyright 2004

Cargar Extensiones en PHP por Defecto


Cuando

cargamos una extensin por defecto, debemos modificar el archivo de configuracin PHP.ini. los scripts que se ejecuten.

La extensin agregada estar disponible para todos Para cargar una extensin por defecto, debemos

agregar la directiva extension con el nombre de la extensin que se desea cargar, en el archivo PHP.ini.

Por ejemplo: extension=ext/php_java.dll

Copyright 2004

Cargar Extensiones en PHP Dinamicamente


Cuando cargamos una extensin dinmicamente, la

extensin se carga en tiempo de ejecucin. Para ello utilizamos la funcion dl( ).


<?php dl('ext/php_mysql.dll');

print Se MySQL;
?>

carg

el

mdulo

de

extensin

de

Copyright 2004

Extensiones en PHP
Una vez incorporada la extensin se puede hacer uso de sus

funciones, como cualquier otra funcin de PHP. Por ejemplo:


<?php

dl('php_mysql.dll');
// * Conectarse al servidor MySQL $idConn=mysql_connect("localhost:3306","root","mysql");

if ($idConn == 0) {
echo "Fall la Conexin al Servidor MySQL!"; $sqlerror = mysql_error($idConn);

echo"$sqlerror";
} else { $dbSelect = mysql_select_db('SAMPLE', $idConn);

mysql_close($idConn); // * Cerrar la conexin


} ?>
Copyright 2004

Resumen
Se explic y desarrollar las funciones definidas

por el usuario
Se describi y utilizar las funciones del lenguaje

incorporadas en PHP
Se indic cmo se incorporan las extensiones en

PHP

Copyright 2004

Desarrollo de Sitios Web

Copyright 2004

Objetivos de Aprendizaje
Definir el trmino Aplicacin Web Discutir la utilidad de las variables predefinidas de

PHP
Explicar cmo se procesan los formularios en PHP

Explicar la administracin de sesiones en PHP

Copyright 2004

Aplicaciones Web
Es una aplicacin desarrollada usando tecnologas

basadas en el entorno web como HTML, XML, JavaScript, PHP, ASP, CGI Perl, Java Servlets...
Las aplicaciones web utilizan otras aplicaciones

como navegadores, servidores web y los protocolos de Internet para poder funcionar. Componentes de una Aplicacin web
Navegador Web Servidor Web Recursos Externos
Copyright 2004

Componentes de una Aplicacin Web


Navegador

Servidor Web

Contenido

ASP, (ASP, JSP, JSP PHP o Java Servlets Servlet) DBMS Recursos Externos
Sistema de Monitor de Procesamiento de Transacciones

Copyright 2004

Variables predefinidas en PHP


Son variables que estn disponibles para cualquier

script que se ejecute y cada una de ellas tiene distinto propsito.


La mayora de estas variables son 'superglobales',

o globales automticas.
Esto significa que estn disponibles en todos los

contextos a lo largo de un script.

Copyright 2004

Variables predefinidas en PHP 2


Variables de Servidor: $_SERVER Variables de entorno: $_ENV Cookies HTTP: $_COOKIE Variable HTTP_GET: $_GET Variable HTTP_POST: $_POST Variables de Solicitud: $_REQUEST Variables de Sesin: $_SESSION Variables Globales: $GLOBALS
Copyright 2004

Variables de Servidor: $_SERVER


Son variables definidas por el servidor web o

relacionadas directamente con el entorno donde el script se est ejecutando.


$_SERVER es un arreglo que contiene informacin

tal como cabeceras, rutas y ubicaciones de scripts.


Los valores de este arreglo son creados por el

servidor web.
Como la configuracin de los servidores puede

cambiar entre s, no se garantiza que cada uno de los elementos del arreglo $_SERVER adquiera un valor.
Copyright 2004

Variables de Servidor: $_SERVER ... 2


Se utiliza $_SERVER[elemento], para acceder a

los valores de las variables de servidor.


El nombre del elemento funciona como clave. Por

ejemplo, $_SERVER[SERVER_NAME]. Algunos elementos de $_SERVER:

'PHP_SELF' 'SERVER_NAME' 'REQUEST_METHOD' 'QUERY_STRING'

'REMOTE_ADDR' 'REMOTE_HOST' 'REMOTE_PORT' 'SCRIPT_FILENAME'

'DOCUMENT_ROOT'

'SCRIPT_NAME'
Copyright 2004

Variables de Entorno: $_ENV


Son variables que son proporcionadas al script

dependiendo del entorno del computador donde se est ejecutando el script. Visualizar las variables de entorno de PHP <?php print_r($_ENV); ?>

Copyright 2004

Cookies HTTP: $_COOKIE


Una cookie es un conjunto de datos que se pasa en

el encabezado HTTP (HTTP Header). Las cookies se almacenan en el computador del cliente en forma de archivo de texto.
La variable $_COOKIE es un arreglo asociativo que

contiene las variables cookies pasadas al script actual a travs del encabezado HTTP.
Para recuperar el valor de una cookie se coloca:

<?
$miCookie = $_COOKIE[nombreCookie];

?>
Copyright 2004

Variable HTTP_GET: $_GET


La variable $_GET es un arreglo asociativo de las

variables que son pasadas al script PHP a travs del mtodo GET del formulario.
Para recuperar el valor de un campo de formulario

utilizando el mtodo GET:

<?
$valor = $_GET[nombreCampo];

?>

Copyright 2004

Variable HTTP_POST: $_POST


La variable $_POST es un arreglo asociativo de las

variables que son pasadas al script PHP a travs del mtodo POST del formulario.
Para recuperar el valor de un campo de formulario

utilizando el mtodo POST:

<?
$valor = $_POST[nombreCampo];

?>

Copyright 2004

Variable de Solicitud: $_REQUEST


Son

proporcionadas al script por medio cualquier mecanismo de entrada del cliente. contenidos de $_GET, $_POST, y $_COOKIE.

de

Es un arreglo asociativo que consiste en los Para recuperar el valor de una variable de solicitud

utilizando $_REQUEST: <?

$valor = $_REQUEST[nombreVariable];
?>
Copyright 2004

Variables de Sesin: $_SESSION


Son variables que han sido registradas en la sesin

del script que se est ejecutando, y que han sido especificadas como tal.
Es un arreglo asociativo que contiene las variables

de sesin disponibles en el script actual


Para recuperar el valor de una variable de sesin

utilizando la variable de sesin $_SESSION: <? $valor = $_SESSION[nombreVarSesion]; ?>


Copyright 2004

Variables Globales: $GLOBALS


Es un arreglo asociativo que contiene referencias a

todas las variables que estn definidas actualmente en el contexto global del script.
Para acceder a las variables Globales:
<?php

$glob1 = 10;
$glob2 = 20; function miFuncion(){ $GLOBALS["glob2"]=$GLOBALS["glob1"] + $GLOBALS["glob2"]; }

?>
Copyright 2004

Uso de Formularios en PHP


Un formulario es un objeto perteneciente a la

jerarqua DOM de HTML.


Acta como receptor de datos del cliente para

posteriormente enviarlos al servidor web.


Estos datos de entrada son enviados al script PHP

especificado como un action de ese formulario.

Para crear un formulario:


<form name="F1" method="post" action="miScript.php">
<<Elementos del Formulario>> </form>
Copyright 2004

Mtodos del Formulario


Existen dos formas por medio de las cuales se puede

enviar la informacin contenida por el formulario a un script que har su procesamiento. Mtodo GET
Enva datos del formulario al programa a travs del

encabezado del mensaje de solicitud HTTP (HTTP Request) y los datos son agregados al URL. Mtodo POST
Enva datos del formulario al programa a travs del

cuerpo del mensaje de solicitud HTTP (HTTP Request) y los datos no son agregados al URL.
Copyright 2004

Recuperar Informacin de un Formulario


Utilizando las Variables de Entorno $_POST y

$_REQUEST.
<form name="form1" method="POST" action="miScript.php"> Nombre: <input type=text name=nombre><br> Edad: <input type=text name=edad> <input type="submit" name="B1" value="Enviar"> </form> <?php

print $_POST['nombre'];
print $_POST['edad']; $nombre = $_REQUEST['nombre']; // Otra alternativa ?>
Copyright 2004

Recuperar Informacin de un Formulario... 2


Utilizando las Variables de Entorno $_GET y

$_REQUEST.
<form name="form1" method=GET" action="miScript.php"> Nombre: <input type=text name=nombre><br> Edad: <input type=text name=edad> <input type="submit" name="B1" value="Enviar"> </form> <?php

print $_GET['nombre'];
print $_GET['edad']; $nombre = $_REQUEST['nombre']; // Otra alternativa ?>
Copyright 2004

Recuperar Informacin de un Formulario... 3


La funcin import_request_variables(tipo, prefijo) Esta funcin importa las variables GET, POST o

COOKIE.
El tipo 'G', 'P' o 'C, GET, POST y COOKIE,

respectivamente, indica el tipo de informacin que se desea recuperar.


El prefijo se usa para anteponerlo al nombre del

campo que se desea recuperar.

Copyright 2004

Recuperar Informacin de un Formulario... 4


<?php import_request_variables('P', 'p_'); $nom = $p_nombre; // el prefijo se completa con el nombre del campo $ed = $p_edad; // Si se usa el mtodo GET import_request_variables('G', 'g_');

$nom = $g_nombre;
?>

Copyright 2004

Administracin de Sesiones
Una sesin (session) es el perodo de tiempo que

un usuario permanece en un sitio web, desde el instante en que ingresa al sitio web hasta que sale de ese sitio.
La sesin contina mientras el usuario navega de

pgina en pgina en el sitio web.


En PHP existen varios mtodos para administrar las

sesiones de usuarios.
Cookies HTTP: $_COOKIE Variables de Sesin: $_SESSION

Copyright 2004

Administracin de Sesiones con COOKIES


Las

cookies creadas se guardan dentro del computador del cliente y pueden usarse despus. nombre del usuario y enviar un mensaje de bienvenida ms adelante.

Una cookie puede utilizarse para almacenar el

Los

valores cookies se almacenan en pares "nombre = valor", delimitados por un punto y coma (;). Se pueden crear nombres de variable y asignarles valores.

Copyright 2004

Administracin de Sesiones con COOKIES


Valores que se almacenan en una cookie
El atributo domain: Identifica el servidor que ha

creado la cookie. Determina el dominio de Internet al cual la cookie debe ser enviada. Por ejemplo, domain = www.ibm.com.
El atributo path: Especifica el lugar dentro del sitio

web donde la cookie debe enviarse de regreso al servidor. Por ejemplo, path=/Scripts/Sesion/.
El atributo secure: Especifica que la cookie puede

ser transmitida slamente si el comunicacin con el host es seguro.


El

canal

de

atributo expires: Especifica expiracin de la cookie.

la

fecha

de

Copyright 2004

Administracin de Sesiones con COOKIES


Las cookies en PHP, se almacenan en la variable

predefinida $_COOKIE. Si se necesita recuperar el valor de una cookie se escribe lo siguiente:


<? $miCookie = $_COOKIE[nombreCookie]; ?>

Para crear una cookie en PHP se utiliza la funcin

setcookie().
Esta funcin define una cookie para ser enviada al

cliente.
Las cookies deben enviarse antes de mandar

cualquier otra informacin de encabezado.


Esto requiere que site las llamadas a esta funcin

antes de cualquier etiqueta <html> o <head>.

Copyright 2004

Administracin de Sesiones con COOKIES


As creamos una cookie:
<?

setcookie(Cookie1",ID1",time()+82000,"/","",)
?>

Y as recuperamos su valor:
<?

$miCookie = $_COOKIE["Cookie1"];
echo $miCookie; // Imprime: ID1 ?>
Copyright 2004

Variables de Sesin: $_SESSION


Las variables de sesin en PHP se guardan en el

arreglo asociativo, $_SESSION.


Contiene las variables de sesin disponibles en el

script actual.
Las variables de sesin se crean como una cookie

temporal y se envan en el encabezado del mensaje HTTP.

Copyright 2004

Variables de Sesin: $_SESSION


Funcin session_start(). Crea una sesin (o la contina basndose en un

session id ya generado).

Esta funcin debe llamarse antes de mandar

cualquier otra informacin de encabezado. Esto requiere que site las llamadas a esta funcin antes de cualquier etiqueta <html> o <head>.
Cada vez que se inicia una sesin se genera un

"session id" (PHPSESSID) solicitud del cliente.

especfico

con

la

Copyright 2004

Iniciar una sesin en PHP


<?php session_start(); ?> <html> <head><title>Creando una Sesin</title></head>

<body>
<?php $ID = session_id(); //retorna el id de sesin creado print "ID de la sesin: ".$ID; ?> </body> </html>
Copyright 2004

Crear una variable de Sesin


Crear una variable de sesin directamente en el

arreglo asociativo $_SESSION.

Se especifica el nombre de la variable como ndice


<?php

$_SESSION[userid]=Usuario1;
$_SESSION[nombre]=Joe;

?>

Copyright 2004

Crear una variable de Sesin ... 2


Crear la variable de sesin utilizando la funcin

session_register().

Esta funcin registra una o ms variables globales en la sesin actual


<? $userid = "Usuario1"; session_register("userid");

//crea la variable userid


?>

Copyright 2004

Acceder a una variable de Sesin


Una variable de sesin se puede recuperar de la

siguiente forma:
<?php $uid = $_SESSION[userid]; $nom = $_SESSION[nombre]; print $uid; // imprime el valor de userid print $nom; // imprime el valor de nombre ?>

Copyright 2004

Destruir una variable de Sesin


Las variables se pueden eliminar haciendo uso de

las siguientes funciones: session_destroy, session_unregister y session_unset.


session_destroy():

Destruye todos los datos asociados con la sesin actual. No destruye ninguna de las variables globales asociadas a la sesin ni la cookie. Elimina y libera el espacio ocupado por todas las variables de la sesin actual registradas. Elimina la variable global llamada nombreVar de la sesin actual.
Copyright 2004

session_unset():

session_unregister(nombreVar):

Destruir una variable de Sesin ... 2


<?php session_unset(); /* Destruye variables de la sesin */ todas las

session_destroy(); //Destruye la sesin ?>

Se puede eliminar la sesin asignndole al arreglo

$_SESSION un arreglo vaco.


<? $_SESSION = array();
session_destroy(); // Destruye la sesin ?>
Copyright 2004

Resumen
Se defini el trmino Aplicacin Web Se discuti la utilidad de las variables predefinidas

de PHP
Se explic cmo se procesan los formularios en

PHP
Se explic la administracin de sesiones en PHP

Copyright 2004

Acceso a Bases de Datos usando PHP

Copyright 2004

Objetivos de Aprendizaje
Describir cmo se trabaja con bases de datos en

PHP
Utilizar ODBC para acceder a bases de datos Explicar cmo conectarse y desconectarse a una

base de datos
Explicar

cmo recuperar, insertar, eliminar, y actualizar registros datos en MySQL

Utilizar la extensin de PHP para acceder bases de

Copyright 2004

Acceso a Bases de Datos con PHP


Una Base de Datos Relacional es un conjunto de

tablas que mantienen relaciones unas con otras entre s, permitiendo almacenar informacin en forma ntegra y consistente.
Entre las bases de datos relacionales que maneja

PHP podemos mencionar MySQL, MS SQLServer, Oracle y tambin se usa IBM UDB/DB2.
Para propsitos de este curso utilizaremos IBM

DB2.

Copyright 2004

Acceso a Bases de Datos con PHP 2


Para trabajar las bases de datos es necesario

manejar un conjunto de comandos que nos van a permitir realizar operaciones como:
Conexin y desconexin a la base de datos.
Crear y eliminar tablas. Sentencias SQL para insertar, borrar y actualizar

registros.
Sentencias SQL para recuperar registros de las

tablas.
En PHP, dichas operaciones se realizan mediante

funciones.
Copyright 2004

Extensiones para uso de Bases de Datos


PHP posee extensiones para manipular diferentes

bases de datos.
Las funciones para trabajar con cada base de datos

en particular estn disponibles en su respectiva extensin.


Las funciones de manejo de bases de datos

poseen como prefijo el nombre del manejador de base de datos que se va utilizar.

Por ejemplo, si se trata de MySQL:


mysql_connect(): Conectarse a la base de datos.

mysql_db_query(): Ejecucin de sentencias SQL.


Copyright 2004

Extensiones para uso de Bases de Datos


En PHP tambin se puede lograr el acceso a Bases

de Datos usando ODBC.


El

mdulo de extensin para ODBC, viene incorporado (built-in) en PHP, por lo tanto no se requiere cargar una extensin especfica para poder utilizarlo. prefijo odbc.

Las funciones relativas a ODBC en PHP tienen el

Por ejemplo:
odbc_connect(): Conectarse a la base de datos.

odbc_do(): Ejecutar las consultas SQL.


Copyright 2004

ODBC (Open Database Connectivity)


ODBC es un estndar ampliamente aceptado por

Microsoft, que permite a las aplicaciones conectarse a varias bases de datos relacionales como IBM DB2 Universal Database, Oracle, etc.
Proporciona un conjunto de APIs para acceder a

datos en bases de datos relacionales.


Este conjunto de APIs es uniforme entre las bases

de datos relacionales.

Copyright 2004

Arquitectura de Aplicacin ODBC

Copyright 2004

Conexin a una Base de Datos con ODBC


odbc_connect (dsn, userid, password) odbc_pconnect (dsn, userid, password)
<?
$id_conn=odbc_connect("SAMPLEDSN","db2admin","db2admin"); if ($id_conn == 0) { echo "Fall la conexin a la base de datos!"; $sqlerror = odbc_errormsg($id_conn);

echo "$sqlerror";
} else echo "La conexin a la base de datos fue satisfactoria!"; ?>
Copyright 2004

Cerrar una conexin a Base de Datos


odbc_close(id_conn)
<?

$id_conn=odbc_connect(SAMPLEDSN,db2admin,password.1 );
if ($id_conn == 0) { echo "Fall la Conexin a Base de Datos!"; $sqlerror = odbc_errormsg($id_conn); echo"$sqlerror";

}
else { odbc_close($id_conn); //Cerrando la conexin } ?>
Copyright 2004

Ejecutar Sentencias SQL


Sentencias Insert Sentencias Delete Sentencias Update

Sentencias Select

Copyright 2004

Ejecutar Sentencias SQL ... 2


Para ejecutar una sentencia SQL se utilizan las

funciones:
odbc_do (id_conn,sentencia_SQL) odbc_exec(id_conn,sentencia_SQL) Alternativamente,

se

pueden

utilizar

las

funciones:
odbc_prepare (id_conn, sentencia_SQL) odbc_execute (id_conn [, parametros]) Para poder utilizar la funcin odbc_execute

antes se debe utilizar la funcin odbc_prepare


Copyright 2004

Ejecutar Sentencias SQL ... 3


<? // Seleccionar Registros de una Tabla: $strsql = SELECT * FROM PRODUCTOS;"; $id_stmt = odbc_do($id_conn,$strsql); // Es equivalente: $id_stmt = odbc_exec($id_conn,$strsql); // Tambin puede realizar lo siguiente: $id_stmt = odbc_prepare($id_conn, $strsql); odbc_execute($id_stmt); ?>
Copyright 2004

Crear una tabla


<? // Crear una tabla de productos $strsql = "CREATE TABLE PRODUCTOS( PROD_COD INTEGER NOT NULL, PROD_NOMBRE VARCHAR(20), PROD_PRECIO INTEGER);"; $id_stmt = odbc_do($id_conn,$strsql); ?>

Copyright 2004

Insertar Registros
<? // Insertar registros a una tabla $strsql = "INSERT INTO PRODUCTOS VALUES(10,'TV',60000);"; $id_stmt = odbc_exec($id_conn,$strsql); ?>

Copyright 2004

Actualizar Registros
<? // Actualizar registros de una tabla $strsql = "UPDATE PRODUCTOS SET PROD_PRECIO = 45000 WHERE PROD_COD = 10;"; $id_stmt=odbc_prepare($id_conn, $strsql);

odbc_execute($id_stmt);
?>

Copyright 2004

Eliminar Registros
<? // Eliminar registros de una tabla $strsql = "DELETE PROD_COD = 10; "; FROM PRODUCTOS WHERE

$id_stmt=odbc_prepare($id_conn, $strsql);

odbc_execute($id_stmt);
?>

Copyright 2004

Seleccionar Registros
<? // Seleccionar registros de una tabla $strsql = "SELECT PROD_NOMBRE, PROD_PRECIO FROM PRODUCTOS WHERE PROD_PRECIO >=30000; "; $id_stmt = odbc_exec($id_conn,$strsql); ?>

Copyright 2004

Recuperar Registros Seleccionados


Para recuperar registros ya seleccionados se

utiliza la funcin odbc_fetch_row.Para acceder un campo se usa la funcin odbc_result


<table border="1"> <tr><th>NOMBRE PRODUCTO</th><th>PRECIOS</th></tr> <? while (odbc_fetch_row($id_stmt)) {

echo"<tr><td>",odbc_result($id_stmt,1),"</td> <td>",odbc_result($id_stmt,2),"</td></tr>";
}?> </table>
Copyright 2004

Mostrar mensajes de error


La funcin odbc_errormsg([id_conn]), retorna

una cadena que contiene el mensaje de error ODBC o una cadena vacia si no hay error.
<? $id_conn = odbc_connect(SAMPLEDSN,db2admin,passwo rd.1) if ($id_conn == 0) { $sqlerror = odbc_errormsg($id_conn); echo "$sqlerror"; } ?>
Copyright 2004

Acceso a Bases de Datos con la extensin MySQL


Para que desde un script PHP se pueda trabajar

con una base de datos utilizando una extensin sta debe estar disponible.

Incoporar la extensin de forma automtica o por defecto


Se debe modificar el archivo de configuracin

php.ini. Para Windows, se agrega la sentencia:


extension=ext/php_mysql.dll

Copyright 2004

Acceso a Bases de Datos con la extensin MySQL Incoporar la extensin dinmicamente


Se hace directamente en el script PHP, utilizando

la funcion dl().

La extensin se carga en tiempo de ejecucin y

estar disponible slo para el script actual.


<?php dl(ext/php_mysql.dll);

. . .
?>

Copyright 2004

Abrir una conexin al Servidor MySQL


mysql_connect(host:numpuerto,$userid, $password) mysql_pconnect(host:numpuerto,$userid,$password)

<?php $idConn = mysql_connect('localhost:3306','root','mysql'); if (!$idConn) { die(Error de conexin: ". mysql_error()); } echo "Conexin satisfactoria"; ?>
Copyright 2004

Cerrar una conexin al Servidor MySQL


mysql_close($idConn)
<?php

$idConn =
mysql_connect('localhost:3306','root','mysql'); if (!$idConn) { die(Error de conexin: ". mysql_error()); } echo "Conexin satisfactoria"; mysql_close($idConn); ?>
Copyright 2004

Seleccionar una Base de Datos en MySQL


mysql_select_db($BD,$idConexion)
<?php

$idConn =
mysql_connect('localhost:3307','root','mysql'); $dbSelect = mysql_select_db('SAMPLE', $idConn); if (!$dbSelect) { die ('Error en la seleccin:' . mysql_error()); } ?>
Copyright 2004

Crear una Base de Datos en MySQL


mysql_create_db($BD,$idConexion)
<?php

$idConn =
mysql_connect('localhost:3306',root','mysql'); if (mysql_create_db('BD_productos',$idConn)) { echo "La base de datos se creo correctamente"; } else { echo 'Error al crear la BD:' . mysql_error(); } ?>
Copyright 2004

Eliminar una Base de Datos en MySQL


mysql_drop_db($BD,$idConexion)
<?php

if (mysql_drop_db('BD_productos', $idConn)) {
echo "La base de datos ha sido eliminada";

} else {
echo 'Error al eliminar la BD:'.mysql_error(); } ?>

Copyright 2004

Ejecutar Sentencias SQL usando funciones MySQL


La funcin mysql_query() permite ejecutar cualquier

sentencia SQL mysql_query (sentenciaSQL,$idConn)

mysql_query() enva una consulta (sentenciaSQL) a la base de datos que est activa en el servidor asociado con el identificador de conexin $idConn.

Si se ejecuta una sentencia SQL del tipo: UPDATE,

DELETE, DROP o INSERT, CREATE, retorna TRUE en caso de xito y FALSE en caso contrario. SHOW o DESCRIBE, retorna un resource en caso de exito o FALSE en caso de error.
Copyright 2004

Si se ejecuta una sentencia SQL del tipo SELECT,

Crear una Tabla


<?php $strsql = "CREATE TABLE EMPLEADOS(

EMP_COD INTEGER NOT NULL,


EMP_NOMBRE VARCHAR(20), EMP_PRECIO VARCHAR(20));";

$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); }

?>
Copyright 2004

Insertar Registros en una Tabla


<?php $strsql = "INSERT INTO EMPLEADOS

VALUES(10,'PEDRO PEREZ', PROGRAMADOR);";

$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>

Copyright 2004

Actualizar Registros en una Tabla


<?php $strsql = "UPDATE EMPLEADOS SET EMP_CARGO =

DISEADOR WHERE EMP_COD = 10;";

$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>

Copyright 2004

Eliminar Registros en una Tabla


<?php $strsql="DELETE FROM EMPLEADOS WHERE EMP_COD=10;"

$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>

Copyright 2004

Eliminar una Tabla


<?php $strsql="DROP TABLE EMPLEADOS";

$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>

Copyright 2004

Seleccionar Registros de una Tabla


<?php $strsql="SELECT EMP_NOMBRE, EMP_CARGO

FROM EMPLEADOS WHERE EMP_CARGO = DISEADOR;"

$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>

Copyright 2004

Recuperar Registros seleccionados .. 1


<?php $strsql="SELECT EMP_COD, EMP_NOMBRE FROM EMPLEADOS WHERE EMP_CARGO = PROGRAMADOR;" $result = mysql_query($strsql); if ($result) {

$fila = mysql_fetch_row($result);
echo $fila[0]; // El registro retornado EMP_COD del primer

echo $fila[1]; //El EMP_NOMBRE del primer registro retornado } ?>


Copyright 2004

Recuperar Registros seleccionados .. 2


<?php $strsql="SELECT EMP_COD, EMP_NOMBRE FROM EMPLEADOS WHERE EMP_CARGO = PROGRAMADOR;" $result = mysql_query($strsql); if ($result) {

$fila = mysql_fetch_array($result);
echo $fila[0]; // Equivalente a:

// $fila[EMP_COD]
echo $fila[1]; // Equivalente a: // $fila[EMP_NOMBRE] }
Copyright 2004

Recuperar Registros seleccionados .. 3


<?php $strsql="SELECT EMP_COD, EMP_NOMBRE FROM EMPLEADOS WHERE EMP_CARGO = PROGRAMADOR;" $result = mysql_query($strsql); if ($result) {

$fila = mysql_fetch_assoc($result);
echo $fila[EMP_COD];

echo $fila[EMP_NOMBRE];
} ?>
Copyright 2004

Recuperar Registros seleccionados .. 4


<?php $strsql="SELECT EMP_COD, EMP_NOMBRE FROM EMPLEADOS WHERE EMP_CARGO = PROGRAMADOR;" $result = mysql_query($strsql); if ($result) {

$objfila = mysql_fetch_object($result);
echo $objfila->EMP_COD;

echo $objfila->EMP_NOMBRE;
} ?>
Copyright 2004

Recuperar Registros seleccionados .. 5


<?php $result = mysql_query("select * from EMPLEADO"); while ($fila = mysql_fetch_array($result)) { echo $fila[EMP_COD]; echo $fila[EMP_NOMBRE]; echo $fila[EMP_CARGO]; } mysql_free_result($result); ?>
Copyright 2004

Otras funciones tiles de la extensin de MySQL


mysql_error($idConexion) mysql_errno($idConexion) mysql_ping($idConexion) mysql_info($idConexion) mysql_field_name($resultado,$indiceCampo)

mysql_field_type($resultado,$indiceCampo)
mysql_num_fields($resultado) mysql_num_rows($resultado) mysql_list_tables($BD,$idConexion) mysql_list_dbs($idConexion) mysql_free_result($resultado)
Copyright 2004

Resumen
Se describi cmo se trabaja con bases de datos

en PHP
Se utiliz ODBC para acceder a bases de datos Se explic cmo conectarse y desconectarse a una

base de datos
Se explic cmo recuperar, insertar, eliminar, y

actualizar registros
Se utiliz la extensin de PHP para acceder bases

de datos en MySQL

Copyright 2004

Unidad 8 Laboratorio: Acceso a Bases de Datos usando PHP

Copyright 2004

Unidad 9 Introduccin a la Programacin Orientada a Objetos con PHP

Copyright 2004

Objetivos de Aprendizaje
Crear Clases y Objetos en PHP Describir la Herencia en PHP

Conocer cmo se implementa el Polimorfismo en

PHP
Crear Clases Abstractas e Interfaces Discutir como se realiza la clonacin de objetos

Copyright 2004

Definicin de Clases
La definicin de una clase comienza con la palabra

"class", luego se coloca el nombre de la clase. La definicin del los atributos y mtodos miembros se hace dentro de llaves.
<?php class ClaseA { // * atributos

public $var1;
private $var2 = 'Valor por defecto'; // * mtodo

function mostrarVar() {
echo $this->var2; }

}
?>
Copyright 2004

Definicin de Objetos
Para crear una instancia de una clase, se crea

un nuevo objeto y ste es asignado a una variable.


<?php
$obj1 = new ClaseA();

$obj2 = $obj1;
/* $obj2 hace instancia */ ?> referencia a la misma

Copyright 2004

Acceder a atributos y mtodos


Para acceder a los atributos y mtodos de un

objeto utilizamos el operador flecha ->, como se muestra a continuacin:

<?php /* $objeto->nombre_atributo; $objeto->nombre_metodo; */ $obj1 = new ClaseA(); echo $obj1->var1; // A la variable se le quita el $ $obj1->mostrarVar(); ?>
Copyright 2004

Acceder a atributos y mtodos 2


Para acceder a un miembro dentro de la misma
<?php class ClaseB { private $var1=Hola!; private $var2=Adios!; public function mostrarVar1() { echo $this->var1; } public function mostrarVar2() { $this->mostrarVar1(); echo $this->var2; } }
Copyright 2004

definicin de la clase, se utiliza la variable $this, que hace referencia a la instancia actual.

Visibilidad de atributos y mtodos


Pblica: Los elementos pueden ser accedidos

desde cualquier lugar dentro del programa.


Protegida: Los elementos limitan el acceso slo a

la clase que los define y a las clases que heredan de sta.


Privada: Los elementos limitan la visibilidad slo

a la clase que los define.


La visibilidad de un atributo o mtodo puede ser

definida al anteponerle a la declaracin las palabras: public protected private


Copyright 2004

Visibilidad de atributos y mtodos 2


<?php class ClaseB { private $var1=Hola!; protected $var2=Adios!; public function mostrarVar1() { echo $this->var1; } public function mostrarVar2() { echo $this->var2; } } ?>
Copyright 2004

Constructor de una clase


El mtodo constructor se invoca cada vez que se

crea un nuevo objeto. Un constructor de clase se define con la funcin __construct().


<?php
class ClaseA { private $var1; function __construct($arg1){ $this->var1=$arg1; }

}
$objA = new ClaseA("Valor1"); // Se ejecuta el constructor ?>
Copyright 2004

Destructor de una clase


El mtodo destructor de una clase, si est

definido, se invoca cuando todas las referencias a un objeto en particular sean removidas o cuando el objeto sea explcitamente destruido.
Un destructor de clase se define con la funcin

__destruct().

Copyright 2004

Destructor de una clase 2


<?php class ClaseA { public $var1; function __construct($arg1) { $this->var1=$arg1; function __destruct() { print "Se destruye el objeto!"; } }

}
$objA = new ClaseA("Valor 1"); /* Al terminar de usar el objeto o al finalizar el script se destruye el objeto */
Copyright 2004

Definir mtodos getter y setter


<?php class ClaseA { private $var1;

function __construct($arg1) {
$this->var1=$arg1; $this->var1=$valor; } function get_var1() { return $this->var1; } } $objA = new ClaseA("Valor 1"); $objA->set_var1("Nuevo valor"); echo $objA->get_var1();
Copyright 2004

function set_var1($valor) {

Constantes de una clase


Dentro de una clase se pueden definir constantes.

Se nombran sin utilizar el signo $. desde una instancia.

Los valores constantes no pueden ser accedidos Las constantes definidas dentro de una clase slo

se pueden acceder a travs del nombre de la clase o a travs de un mtodo que las retorne o muestre.
No se puede utilizar el operador flecha (->) para

accederlas.

Copyright 2004

Constantes de una clase 2


<?php class claseA { const miConstante = 'Valor constante!';

function get_miConstante() {
return self::miConstante; // No est pemitido: $this->miConstante } } $objetoA = new ClaseA(); $var1=$objetoA->get_miConstante(); echo ClaseA::miConstante; // Se muestra la constante

echo $objetoA->miConstante;

// Error!
Copyright 2004

echo $objetoA::miConstante; // Error!

El Operador de resolucin ::
El operador de resolucin, dobles dos puntos

(::), es un smbolo que permite acceder a los atributos o mtodos estticos y las constantes de una clase.

El operador de resolucin tambin se utiliza

cuando se necesita tener acceso desde una clase hija a los atributos o mtodos de su clase padre.
self: Hace referencia a la clase actual, a la clase

que define al mtodo.


parent: Hace referencia a la clase padre.

Copyright 2004

El Operador de resolucin :: 2
<?php class ClaseA { const CONST_A = 'A';

}
class ClaseB extends ClaseA { const CONST_B = B; public static $estaticaB = 'Variable esttica'; public static function mostrarConstantes() { echo parent::CONST_A; echo self::CONST_B; }

public static function mostrarEstaticas() {

echo self::$estaticaB;
}

}
Copyright 2004

El Operador de resolucin :: 3
<?php echo ClaseA::CONST_A; echo ClaseB::estaticaB; ClaseB::mostrarEstaticas(); ?>

Copyright 2004

El Operador de resolucin :: 4
<?php class ClasePadre { private $varPriv;

protected $varProt;
function __construct($valor) { $this->$varPriv=$valor; $this->$varProt=$valor; } protected function miFuncion() { echo "Funcion del padre"; }

}
?>
Copyright 2004

El Operador de resolucin :: 5
<?php class ClaseHijo extends ClasePadre {

function __construct() {
parent::__construct("Inicializada desde el padre"); $this->$varProtected="Inicializada desde el hijo"; } public function miFuncion() { parent::miFuncion(); echo "Funcin del hijo"; }

}
?>
Copyright 2004

El Operador de resolucin ::
El operador de resolucin, dobles dos puntos

(::), es un smbolo que permite acceder a los atributos o mtodos estticos y las constantes de una clase.

El operador de resolucin tambin se utiliza

cuando se necesita tener acceso desde una clase hija a los atributos o mtodos de su clase padre.
self: Hace referencia a la clase actual, a la clase

que define al mtodo.


parent: Hace referencia a la clase padre.

Copyright 2004

Resumen
Se crearon Clases y Objetos en PHP Se describi la Herencia en PHP

Se conoci cmo se implementa el Polimorfismo

en PHP
Se crearon Clases Abstractas e Interfaces Se discuti como se realiza la clonacin de objetos

Copyright 2004

You might also like