1
PHP
PHP HiperText Preprocesor
2
Contenidos Introduccin
Sintaxis bsica
Variables, tipos y operadores
Variables predefinidas
Constantes
Estructuras de Control
Incluir cdigo de ficheros externos
Funciones
Accediendo a MySQL
Cookies
Sesiones
Ficheros y directorios
Clases y Objetos (PHP 5)
3
Introduccin Que es PHP?
Lenguaje de programacin de alto nivel
Empotrado en pginas HTML
Ejecutado en servidor
Software libre
4
Introduccin (II) Que puedo hacer con PHP?
Scripts del lado del servidor
Scripts en linea de comandos
Aplicaciones con interfaz grfica PHP-GTK
5
Introduccin (III) Scripts del lado del servidor
HTML + PHP
Procesa PHP
BD
LDAP
...
/
Genera HTML
Cliente
Servidor
6
Introduccin (III) Scripts del lado del servidor
HTML + PHP
Procesa PHP
Servidor BD:MySQL
c:\Genera HTML
Navegador(Firefox)
Servidor Web : Apache2
7
Introduccin Requisitos
PHP5 Servidor Web : apache2 Servidor BD : mysql Editor : netbeans
Todo en 1 : XAMPP (Apache + MySQL + PHP) Netbeans
Software libre !!!
8
Introduccin Instalacin en windows
XAMPP : http://www.apachefriends.org/es/xampp.html Installer : Instalacin por defecto : C:\xampp Raiz de documentos : c:\xampp\htdocs Configuracin php : c:\xampp\apache\bin\php.ini Configuracin apache :
C:\xampp\apache\conf\httpd.conf Configuracin mysql : C:\xampp\mysql\bin\my.cnf
Navegador : http://localhost MySQL : http://localhost/phpmyadmin
http://www.apachefriends.org/es/xampp.htmlfile:///c:/xampphttp://localhost/9
Introduccin Instalacin en windows (II) Editor de scripts php
Editor de texto plano IDE (Entorno de desarrollo integrado)
Editor Resaltado de sintaxis Plantillas html Debuger Proyectos ...
10
Introduccin Instalacin en windows (II)
IDE : Netbeans, Eclipse, Zend Studio
NetBeans
http://www.netbeans.org/downloads/index.html
PHP + Spanish + Windows
http://www.netbeans.org/downloads/index.html11
Introduccin Primer proyecto php en netbeans
Archivo Proyecto nuevo Categora PHP Proyectos PHP application Project Name Nombre_del_proyecto Sources folder
C:\xampp\htdocs\Nombre_del_proyecto Run as Local web site Project URL http://localhost/Nombre_del_proyecto
http://localhost/Nombre12
Introduccin Primer proyecto php en netbeans (II)
Nombre del projecto : PhpProject1
13
Introduccin Primer proyecto php en netbeans (II)
Ejecutar proyecto: Ejecutar Set project configuration Personalizar
Ejecutar proyecto
14
Sintaxis Bsica (I) Cdigo PHP empotrado en documentos HTML Instrucciones entre etiquetas:
...
recomendado : XHTML XML
15
Sintaxis Bsica (II) Ejemplo
Ttulo de la pgina
16
Sintaxis Bsica (III) Scripts PHP :
Serie de sentencias / instrucciones Ejecutadas secuencilmente Datos en variables Estructuras de control Funciones Clases (POO)
17
Sintaxis Bsica (IV) Los espacios/tabulaciones/saltos de linea entre
las instrucciones, no afectan al comportamiento Las siguientes instrucciones tienen el mismo resultado:
18
Sintaxis Bsica (V) Las instrucciones siempre se finalizan con
punto y coma
19
Sintaxis Bsica (VI) Comentarios : Texto que no se ejecuta
Linea : //
Bloque: /* ... */
Estos comentarios produciran un error
20
Variables Los datos se almacenan en variables
Las variables se representan con un signo de dolar seguido por el nombre de la variable
Sensible a maysculas/minsculas El nombre de la variable :
Empezar con letra o _ (guin bajo) Contener : letras nmeros _
CORRECTO INCORRECTO
21
Operadores de Asignacin Asignacin : =
Permite asignar valores a variables El operando de la izquierda recibe el valor de la
expresin de la derecha
94
22
Variables (II) A diferencia de otros lenguajes PHP es un lenguaje no
tipado El programador no decide el tipo de una variable El tipo lo decide PHP en tiempo de ejecucin dependiendo
del contexto
23
Variables (III) Para forzar variables
settype($variable,tipo) Moldear variables (casting)
Mostrar tipo variable var_dump($variable);
Mostrar contenido variable print_r($variable) echo printf
24
Variables (IV) Mostrar contenido variables : ejemplos
25
Variables (V) Mostrar contenido variables : Saltos de linea
Fuente HTML :
123Pgina en construccin
Navegador:
123Pgina en construccin
26
Variables (VI) Mostrar contenido variables : Saltos de linea (II)
Fuente HTML :
123
Pgina en construccin
Navegador:
123Pgina en construccin
27
Variables (VII) Mostrar contenido variables : Saltos de linea (III)
Fuente HTML :
123Pgina en construccin
Navegador:
123Pgina en construccin
28
Pasar datos entre scripts HTTP : protocolo sin estado El valor de las variables existe durante la vida del
script (pgina) Pasar datos entre scripts (pginas)
Formularios Enlaces GET Cookies Sesiones
29
Obtener variables de formularios Metodo : POST
30
Obtener variables de formularios Metodo : GET
logon
31
Tipos Tipos
Escalares Enteros Coma flotante Cadenas Booleanos
Compuestos Matrices Objetos
Null Resource
32
Tipos : Enteros Enteros (Integer)
Nmeros enteros del conjunto Z = {...,-2,1,0,1,2,...}
Tamao depende de la plataforma
Usual : 32 bits con signo
Z = {-2147483647,-2147483646,...,-1,0,1,2147483646,2147483647}
Si se desborda un entero ser interpretado como float (numero de coma flotante)
33
Tipos : Enteros (II) Enteros (Integer)
Declarando variables de enteros:
Desbordamiento de enteros :
34
Tipos : Reales Nmeros de coma flotante (Float)
Nmeros reales Tambin conocidos como doble o real Tamao depende de la plataforma Usual : ~1.8e308
35
Tipos : Reales (II) Float : Imprimir variables de tipo float
echo
printf
36
Operadores aritmticos Podemos realizar operaciones aritmticas
El operador ' / ' devuelve un valor flotante a menos que los dos operandos sean enteros y los nmeros sean divisibles sin residuos
Operacion Operador Ejemplo
suma + $total = $precio + $iva;
resta - $oferta = $total - $descuento;
multiplicacion * $iva = $precio*0.16;
division / $media = $suma / $total;
mdulo (resto) % $resto = $total % 5;
negacin - $a = 10*-$b;
37
Operadores aritmticos (II) El orden de ejecucin :
* / % + - Izquierda a derecha Parntesis : orden de ejecucin
38
Operadores aritmticos (III) Ejemplos :
39
Operadores aritmticos (IV) Operadores de incremento/decremento :
Operacion Ejemplo EjemploPre-incremento ++$a Incrementa $a en uno, y luego devuelve $a.Post-incremento $a++ Devuelve $a, y luego incrementa $a en uno.Pre-decremento --$a Decrementa $a en uno, luego devuelve $a.Post-decremento $a-- Devuelve $a, luego decrementa $a en uno.
40
Tipos : Cadenas Cadenas (String)
Secuencia de caracteres Antes de PHP 6 : un carcter -> un byte 256 tipos de caracteres diferentes Diferentes maneras de especificar Caracteres de escape No hay limite de tamao
41
Tipos : Cadenas Cadenas (String) : Definicin de cadenas
Comillas simples : ' Imprimir comilla simple:
\' Para imprimir barra invertida
\\
42
Tipos : Cadenas Cadenas (String) : Definicin de cadenas
Comillas dobles : Esto es una cadena Caracteres escapados
\n : Imprime una linea nueva \t : Imprime una tabulacin horizontal \\ : Imprime una barra invertida \$ : Imprime un signo de dlar \ : Imprime una comilla doble
Los nombres de las variables sern expandidos
43
Tipos : Cadenas Cadenas : Comillas dobles
\n !=
44
Tipos : Cadenas Cadenas : Expansin de variables
Las variables son interpretadas
45
Tipos : Cadenas Cadenas : Heredoc
Definir cadenas largas Uso similar a comillas dobles Caracteres de escape Expansin de variables
46
Tipos : Cadenas Cadenas : Heredoc
Expansin de variables
47
Tipos : Cadenas Cadenas : Acceso a caracteres
Indices [ 0 .. longitud_cadena -1]
48
Operadores de cadena Concatenacin ' . '
Asignacin sobre concatenacin ' .= '
49
Tipos : Booleanos Booleanos :
2 valores : true o false || TRUE o FALSE 0,0.0, , '',0, null,array vacio = false Cualquier otro valor = true
50
Operadores lgicos Operadores
Operacion Nombre Resultados
$a and $b Y TRUE si tanto $a como $b son TRUE.$a or $b O TRUE si cualquiera de $a o $b es
TRUE.$a xor $b XOR TRUE si $a o $b es TRUE, pero no
ambos.
! $a No TRUE si $a no es TRUE.$a && $b Y TRUE si tanto $a como $b son TRUE.$a || $b O TRUE si cualquiera de $a o $b es
TRUE.
51
Tipos : Array Matrices (Array)
Serie de pares de clave/valor (con un orden) No puede haber claves repetidas Multidimensionales Por defecto : claves numricas consecutivas Claves : integer o string Valor : cualquier tipo de PHP Mediante los arrays podemos agrupar datos /
variables en una sola variable Los valores no tienen por que ser del mismo tipo
52
Tipos : Array Matrices (Array) : Definir array
Podemos definir/crear arrays de diferentes maneras
De las dos maneras tendramos la siguiente estructura (en una sola variable!)
ndice 0 1 2 3 4Valor lunes martes mircoles jueves viernes
53
Tipos : Array Matrices (Array) : Definir array
Podemos especificar los ndices directamente
Los ndices no tiene por que ser consecutivos
ndice 0 1Valor sbado domingo
54
Tipos : Array Matrices (Array) : Definir array
Los ndices numricos no se reordenan
Aunque disponemos de herramientas para hacerlo
ndice 0 2 1Valor ainhoa ane iaki
55
Tipos : Array Matrices (Array) : Aadir elementos al array
Podemos aadir elementos al array sin especificar el ndice
De esta manera se aadirn al final del array y su indice ser el mayor indice del array incrementado en uno
ndice 0 1 2 3Valor invierno primavera verano otoo
56
Tipos : Array Matrices (Array) : Acceder a los valores
$laborables = array(lunes,martes,mircoles,jueves,viernes);echo $laborables;
$estaciones[0]=invierno;$estaciones[1]=primavera;$estaciones[]=verano; $estaciones[]=otoo;
print_r($estaciones);
Array
echo $laborables[2];
mircoles
Array ( [0] => invierno [1] => primavera [2] => verano [3] => otoo )
57
Tipos : Array Matrices (Array) : Array asociativo
Los ndices no tienen por que ser numricos
58
Tipos : Array Matrices (Array) : Array asociativo
Generalmente con BD => Asociativos
Nombre AinaraApelido EtxeberriaDni 99999999K
59
Tipos : Array Matrices (Array) : Array multidimensional
ndice enero febrero .... diciembreValor mikel
ainhoa
ane
ainaraeneko
60
Tipos : Array Matrices (Array) : Array multidimensional
61
Tipos : Array Matrices (Array) : Array multidimensional
62
Operadores de matrices Operadores
Operacion Nombre Resultados$a + $b Unin Unin de $a y $b.$a == $b Igualdad TRUE si $a y $b tienen las mismas parejas llave/valor.$a === $b Identidad TRUE si $a y $b tienen las mismas
parejas llave/valor en el mismo ordeny de los mismos tipos.
$a!=$b No-igualdad TRUE si $a no es igual a $b.$a $b No-igualdad TRUE si $a no es igual a $b.$a !== $b No-identidad TRUE si $a no es idntico a $b.
63
Tipos : NULL Variable que no tiene valor Posibles valor : null || NULL
64
Tipos : Resource Contiene una referencia a un recurso externo Los recursos son usados por funciones
especiales Algunos recursos : mysql, ldap,gd ... Mysql :
Recurso : mysql link Crear recurso : $con = mysql_connect('host' ...) mysql_query(SELECT ..., $con); ....
65
Variables predefinidas Variables del servidor
$_SERVER PHP_SELF SERVER_ADDR SERVER_ADDR DOCUMENT_ROOT QUERY_STRING REMOTE_ADDR HTTP_HOST ...[http://es2.php.net/reserved.variables]
66
Constantes Definicin de constantes
define($nombre,$valor) $nombre (string) : nombre de la constante $valor : Valor de la constante
67
Estructuras de control Controlar la ejecucin de instrucciones Decidir en tiempo de ejecucin que sentencias
ejecutar u omitir Crear bloques repetitivos En tiempo de ejecucin / contexto
68
Estructuras de control : IF Permite la ejecucin condicional de sentencias Si la condicin se cumple en tiempo de
ejecucin : se ejecuta un bloque de cdigo predeterminado
Las tabulaciones no son necesarias pero si recomendables para la legibilidad el cdigo
69
Estructuras de control : IF expr : cualquier cosa que tiene un valor
Los literales son expresiones '5' es una expresin con el valor 5
Las variables son expresiones $a es una expresin con el valor 5
70
Estructuras de control : IF expr : cualquier cosa que tiene un valor
Las comparaciones son una expresion con valores booleanos (true o false ) (verdadero o falso)
$a > 0 es una expresin con valor TRUE
71
Estructuras de control : IF expr se evala a su valor condicional (boolean)
Si la expresin se evala como true se ejecuta la sentencia
Si la expresin se evala como false no se ejecuta la sentencia
72
Operadores de comparacin Operadores
Operacion Nombre Resultados$a == $b Igual TRUE si $a es igual a $b.
$a === $b Idntico TRUE si $a es igual a $b, y son del mismo tipo.$a != $b Diferente TRUE si $a no es igual a $b.$a $b Diferente TRUE si $a no es igual a $b.$a !== $b No idnticos TRUE si $a no es igual a $b.TRUE si $a no es
igual a $b, o si no son del mismo tipo.$a < $b Menor que TRUE si $a es escrictamente menor que $b.$a > $b Mayor que TRUE si $a es estrictamente mayor que $b.
$a = $b Mayor o igual que TRUE si $a es mayor o igual que $b.
73
Operadores de comparacin Las expresiones de comparacin siempre
devuelven un valor boolean
74
Estructuras de control : IF Comparacin
75
Estructuras de control : IF If : Bloques
Podemos agrupar bloque de instrucciones mediante { }
76
Estructuras de control : IF If : Anidar condiciones
Podemos anidar indefinidamente condiciones
77
Estructuras de control : IF If : Condiciones de mltiples expresiones
Operadores lgicos
78
Estructuras de control : IF If : Condiciones de mltiples expresiones
79
Estructuras de control : IF ... ELSE
else : Ejecutar sentencias en caso de que la expresin evaluada en el if sea igual a false
80
Estructuras de control : ELSEIF elseif : combinacin if y else
Se ejecuta si if = false y se da otra condicin nueva
81
Estructuras de control : ELSEIF elseif : No hay limite de sentencias elseif
Solo una se ejecuta
82
Estructuras de control : SWITCH switch : Comparar la misma variable
Similar a bloque if elseif else ( != 1 variable)
83
Estructuras de control : SWITCH switch : sentencia break
Las sentencias se empiezan a ejecutar desde una sentencia case que se cumpla hasta el final del switch o hasta una sentencia break
i=1
i=1i=2
84
Estructuras de control : SWITCH switch : caso default
~ else : En caso de que no se cumpla ningn 'case'
85
Estructuras de control : Bucles Estructuras repetitivas
El cdigo se ejecuta mientras se de una
condicin
Diferentes tipos de bucles
Diferentes sentencias
86
Estructuras de control : Bucles while
Tipo mas simple while (expr) sentencia Si la condicin nunca obtiene el valor false
Bucle infinito !!! Mltiples sentencias : { }
87
Estructuras de control : Bucles while
88
Estructuras de control : Bucles do .. while
Similar a while : La condicin se evala al final
89
Estructuras de control : Bucles For
for (expr1 ; expr2 ; expr3 ) sentencia expr1 : Se ejecuta una sola vez al comienzo del bucle expr2 : Se evala en el comienzo de cada iteracin
true : el bucle continua ejecutndose false : termina la ejecucin del bucle
expr3 : Se ejecuta al final de cada iteracin
90
Estructuras de control : Bucles For
91
Estructuras de control : Bucles Foreach
Fcil iteracin sobre matrices foreach(expresion_array as $value) sentencia foreach(expresion_array as $key => $value) sentencia
92
Estructuras de control : Bucles Foreach
Nombre:JonFechadenacimiento:1982-10-25Direccin:francia4
93
Estructuras de control : Bucles Foreach
94
Estructuras de control : break break : sentencia para salir del bucle
95
Estructuras de control : continue continue : sentencia para terminar iteracin
96
Estructuras de control Sintaxis alternativa
if , while , for , switch abrir llave = dos puntos (:) cerrar llave =
endif; endwhile; endfor; endswitch;
Aesiguala5
97
Incluir cdigo de ficheros externos Include y require
Funciones para incluir otros ficheros include ([ruta]nombre fichero); require ([ruta] nombre fichero);
Si no se encuentra el fichero Include produce un warning (el script continua) Require produce un error fatal (el script NO notinua)
98
Incluir cdigo de ficheros externos Include y require
El cdigo se inserta en el lugar donde se encuentra la instruccin include/require
-37
99
Incluir cdigo de ficheros externos Include y require
Si los ficheros no estn al mismo nivel : ruta Podemos incluir desde url
/var/www/cursos/apuntados/
-37
/var/www/cursos/include/
100
Incluir cdigo de ficheros externos Include_once y require_once
Mismo funcionamiento que include y require Pero si el fichero ha sido evaluado e incluido no
vuelve a incluirseFatal error: Cannot redeclare funcion() (previously declared in ... )
//constante.php
101
Funciones No repetir cdigo Divide y vencers Funciones especificas Funciones variables mediante parmetros El cdigo no se ejecuta hasta la llamada a la
funcin Funciones definidas por el usuario Funciones predefinidas (API)
102
Funciones Funciones : definicin y llamada
Definicin:
function nombreDeFuncion (parametros){cuerpo de funcin
}
Llamada
nombreDeFuncion($parametro);
103
Funciones Funciones : definicin y llamada
104
Funciones Funciones : en ficheros externos
BienvenidoGraciasporsuvisita
105
Funciones Funciones : parmetros
Podemos pasarle variables a las funciones Lista de variables separadas por comas Los parmetros han de definirse al definir la funcin Si se definen parmetros, hay que pasarle variables
a la funcin en la llamada
106
Funciones Funciones : parmetros
BienvenidojonAdiosjonBienvenidoainhoa
107
Funciones Funciones : parmetros por defecto
0104524
108
Funciones Funciones : mbito de las variables
25103010
0//nada
15//nada
109
Funciones Funciones : Return
Las funciones pueden devolver un valor mediante la sentencia return
Puede devolverse cualquier tipo de valor Solo puede devolverse un valor Podemos devolver mltiples valores dentro de un
elemento array por ejemplo
110
Funciones Funciones : Return
ane
mikel
jon
ainhoa
roger
111
Funciones Funciones :
mikelmillan999999999
jonguereu686868686
manuarregi12345678
112
Funciones Funciones : Parametros por referencia
Accedemos a la variable por referencia No se crea una copia, accedemos a la variable
original 12
113
Funciones predefinidas Redireccionar
header() : enviar cabeceras Redireccionar a otra pgina
114
Funciones predefinidas Redireccionar
header() : No puede haber texto antes de una llamada a header
No puede haber ningun echo, print ... antes de una llamada a header
115
Funciones predefinidas Funciones de variables
printf (string_formateado,$var [,$var]) Imprime strings formateados
%% : literal '%' %b : Integer binario %c : Integer caracter ASCII %d : Integer decimal con signo %e : Notacin cientfica %u : Integer decimal sin signo %f : Float numero de coma flotante %o : Integer octal %x : Integer hexadedimal
116
Funciones predefinidas Funciones de variables
printf (string_formateado,$var [,$var])decimalnum=126binarionum=1111110hexadecimalnum=7efloatnum=126.000000floatnum=126.00asciinum=~cientificonum=1.260000e+2
117
Funciones predefinidas Funciones de variables
empty ($variable) Devuelva si la variable existe o no / si est definida o no
unset ($variable) Destruye la variable Elimina un elemento de un array ( no lo reordena!!!)
118
Funciones predefinidas Funciones de variables
is_tipo($variable) Devuelve si la variable es del tipo o no (true || false) is_bool() , is_int(), is_float(), is_string(), is_array() ...
[http://es2.php.net/manual/es/ref.var.php]
119
Funciones predefinidas Funciones matemticas
floor($float) : devuelve el siguiente integer mas pequeo rand($int_min,$int_max) : genera un numero aleatorio sqrt($float) : raiz cuadrada pow($base,$exp) : potencia sin($float) : seno cos($float) : coseno tan($float) : tangente ...
[http://es2.php.net/manual/es/ref.math.php]
120
Funciones predefinidas Funciones matemticas
121
Funciones predefinidas Funciones de cadenas (no codificacin)
strlen ($cadena) : devuelve el nmero de caracteres strpos ($pajar,$aguja) : Devuelve la posicin de la primera
ocurrencia de $aguja en $pajar stripos ~ strpos (stripos : indiferente a mayus minus) strtolower ($cadena) : devuelve la cadena en minusculas strtoupper ($cadena) : devuelve la cadena en mayusculas trim ($cadena) : elimina espacios en blanco en principo y fin de
cadena str_replace ($cad,$sus,$orig) : sustituye todas las apariciones
de $cad por $sus en $orig explode ($separador,$cadena) : divide $cadena en trozos
separados por $separador y devuelve un array con los trozos
122
Funciones predefinidas Funciones de cadenas (no codificacin)
123
Funciones predefinidas Funciones de cadenas (codificadas)
Operan sobre cadenas codificadas en UTF-8,ISO-8859 ... Podemos especificar la codificacin en las funciones Podemos establecer una codificacin por defecto
mb_internal_encoding ("UTF-8"); mb_internal_encoding() : muestra la codificacin interna
124
Funciones predefinidas Funciones de cadenas (codificadas)
mb_strlen ($cadena,[$cod]) : Nmero de caracteres mb_strpos ($pajar,$aguja) : Posicin de la primera ocurrencia
de $aguja en $pajar mb_stripos ~ mb_strpos (stripos : indiferente a mayus minus) mb_strtolower ($cadena) : devuelve la cadena en minsculas mb_strtoupper ($cadena) : devuelve la cadena en maysculas mb_ereg_replace ($patron,$sus,$orig) : sustituye todas las
apariciones de $patron por $sus en $orig mb_split ($patron,$cadena) : divide $cadena en trozos
separados por $patron y devuelve un array con los trozos
125
Funciones predefinidas Funciones de cadenas (codificadas)
126
Funciones predefinidas Funciones de arrays
count ($array) : devuelve el numero de elementos del array asort ($array) : ordena $array utilizando los valores menor-mayor
arsort ($array) : ordena $array utilizando los valores mayor-menor
ksort ($array) : ~ asort pero utilizando las claves
krsort ($array) : ~ arsort pero utilizando las claves
array_keys ($array) : devuelve un array con las claves
array_values ($array) : devuelve un array con los valores
127
Funciones predefinidas Funciones de arrays
in_array ($aguga,$array) : devuelve true si aguja est en $array
array_search($aguja,$array) : Busca $aguja en $array y si lo encuentra devuelve su clave (si no, false)
implode ($separador,$array) : Devuelve una cadena con todos los elementos del array separados por el separador
list ($var1,...,$varN) : Crea variables a partir de un array
128
Funciones predefinidas Funciones de arrays
129
Funciones predefinidas Funciones de arrays
130
Funciones predefinidas Funciones de arrays
131
Accediendo a DB : MySQL MySQL
Servidor de Bases de Datos Almacenaje de datos en bruto Cada BD es independiente Las BD tienen tablas Tablas tiene registros (filas + columnas)
id user pass1 mikel 123212 ainhoa 32343
BD : blog
Tabla : usuario
id user acceso1 1 10/01/092 1 05/03/09
Tabla : accesos
132
Accediendo a DB : MySQL MySQL : Gestionando mysql con phpmyadmin
Crear/eliminar/editar ... BD, tablas, registros, usuarios ...
133
Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Obteniendo datos de tablas
Obtener todos los datos de una tabla (tabla usuario)SELECT * FROM usuario
Obtener una columna de una tablaSELECT nombre FROM usuario
Obtener mas de un campo de una tablaSELECT nombre,apellido,dni FROM usuario
134
Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Obteniendo datos de tablas (II)
CondicionesSELECT * FROM usuarioWHERE edad>18
SELECT * FROM usuarioWHERE nombre = ane
SELECT * FROM usuarioWHERE nombre LIKE %ana%
135
Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Insertando datos en tablas
INSERT INTO usuario(nombre,pass) VALUES (mikel,123)
INSERT INTO usuario (nombre) VALUES (mikel)
INSERT INTO usuario(id,pass) VALUES (1,123)
136
Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Actualizando datos de tablas
UPDATE usuario SET pass=1010 WHERE nombre =ane
UPDATE usuario SET pass=0000 WHERE nombre LIKE a%
UPDATE usuario SET pass=0000 AND nombre=jonWHERE id=1
137
Accediendo a DB : MySQL MySQL : SLQ (Structured Query Language) Consultas : Eliminando datos de tablas
DELETE FROM usuario WHERE id=2
DELETE FROM usuario WHERE nombre LIKE %a
DELETE FROM usuario WHERE pass = OR pass=0000
138
Accediendo a DB : MySQL Acceder al servidor de BD MySQL Funciones mysql:
http://es.php.net/manual/es/ref.mysql.php Crear , eliminar, modificar, obtener ... BD, tablas, usuarios, privilegios ...
Tipo recurso ( referencia a recurso externo ) mysql_connect($hostname,$usuario,$password)
devuelve un identificador de enlace o false $hostname ~ host[:puerto]
http://es.php.net/manual/es/ref.mysql.php139
Accediendo a DB : MySQL Crear / Abrir la conexin
mysql_connect ($hostname,$usuario,$password) Si no hay problemas devuelve el enlace El enlace se cerrara automticamente al finalizar el
script o mediante la funcin mysql_close($link)
140
Accediendo a DB : MySQL Cerrar la conexin
mysql_close ($link)
141
Accediendo a DB : MySQL Seleccionar BD
mysql_select_db($dbname,[$link]); Devuelve true o false
142
Accediendo a DB : MySQL Realizar consultas
mysql_db_query($link) Crear, eliminar, modificar ...
BD, tablas, permisos, registros ... Valores retornados
SELECT,SHOW,DESCRIBE,EXPLAIN : resource INSERT,UPDATE,DELETE,DROP ... : true o false
143
Accediendo a DB : MySQL Consultas sin retorno de valor
144
Accediendo a DB : MySQL Consultas con retorno de valor
Valores en una variable tipo recurso Funciones para tratar los valores retornados
mysql_fecth_assoc ($RS) $RS : El valor retornado por mysql_query Devuelve una matriz asociativa Claves = nombres de las columnas
145
Accediendo a DB : MySQL Consultas con retorno de valor
mysql_fetch_assoc
146
Accediendo a DB : MySQL Consultas con retorno de valor
mysql_fetch_row($RS) $RS : El valor retornado por mysql_query Devuelve una matriz numrica Claves = enteros empezando por 0
147
Accediendo a DB : MySQL Consultas con retorno de valor
mysql_fetch_row
0=usuario11=pass10=usuario21=pass2...
148
Accediendo a DB : MySQL Consultas con retorno de valor
mysql_fetch_array ($RS,[$tipo]) $RS : El valor retornado por mysql_query Devuelve una matriz asociativa, numrica o ambas Por defecto : ambas $tipo : constante que puede tener los siguientes valores
MYSQL_ASSOC MYSQL_NUM MYSQL_BOTH
149
Accediendo a DB : MySQL Consultas con retorno de valor
mysql_fetch_array
0=usuario1name=usuario11=pass1pass=pass10=usuario2name=usuario21=pass2...
150
Accediendo a DB : MySQL Errores
mysql_error ($link) Devuelve el texto del mensaje de error de la ltima
operacin MySQL Si no ocurri error : (cadena vaca)
Unknowndatabase'pruebaaaa'
151
Cookies Pequeos ficheros que se escriben en el
ordenador del cliente Contienen informacin que las pginas que las
han escrito pueden recuperar y utilizar Se puede establecer el tiempo que el
ordenador del usuario guardar el fichero Idioma,temas,ultimo acceso ...
152
Cookies Creacin de cookie
setcookie($nombre[,$valor][,$expire][,$path] [,$dominio][,$secure][,$httponly])
$nombre (string) : Nombre de la cookie $valor (string ) : Valor de la cookie $expire (int ) : Tiempo de caducidad (time()+60*60*24*30 : 30 dias) $path (string) : ruta en el servidor $dominio (string ) : dominio $secure (bool) : indica si solo ser accesible mediante https $httponly (bool) : accesible solo mediante http
153
Cookies Obtencin de cookie
$_COOKIE[$nombreCookie]
154
Sesiones Mecanismo para preservar datos a lo largo de
accesos posteriores Almacena informacin en el servidor accesible
a travs de diferentes scripts La informacin se guarda en variables de
sesin
155
Sesiones Iniciar sesin
session_start() : antes de cualquier etiqueta html
Crear variable de sesin $_SESSION ['nombre'] = $valor;
Recuperar variable de sesin $variable = $_SESSION ['nombre'];
156
Sesiones
157
Sesiones Funciones
session_start : inicia la sesin session_destroy : destruye los datos de sesin session_unset : elimina todas las variables de
sesion session_cache_expire : Devuelve/establece la
caducidad actual del cach
[http://es2.php.net/manual/es/ref.session.php]
158
Ficheros y directorios Ficheros
abrir fichero : fopen ($fichero,$modo) $fichero (string ) : ruta + nombre de fichero $modo (string ) :
a : Aadir datos al final del fichero. Si no existe, se crea a+ : Aadir datos al final del fichero y leer datos. Si no existe, se
crea. r : Solo lectura r+ : Lectura y escritura. Se aade al principio del fichero w : Escritura. Todo el contenido ser borrado. Si no existe, se
crea. w+ : Lectura y escritura. Todo el contenido ser borrado. Si no
existe se crea.
159
Ficheros y directorios Ficheros
abrir fichero : fopen ($fichero,$modo)
160
Ficheros y directorios Ficheros
Leer desde fichero : fgets($fichero,$longitud) Lee una linea de $longitud - 1 bytes feof($fichero) : verifica si el apuntador del fichero est al
final del mismo
161
Ficheros y directorios Ficheros
Escribir en fichero : fwrite($fichero , $cadena [,$longitud] ) Escribe $cadena \n : nueva lineaholasoyunalineaholasoyotralinea
holasoyuna:linea
162
Ficheros y directorios Ficheros
Cerrar fichero : fclose ($fichero)
[http://es2.php.net/manual/es/ref.filesystem.php]
163
Ficheros y directorios Ficheros
Subir ficheros al servidor...
164
Ficheros y directorios Directorios
Abrir directorio : opendir($ruta) Devuelve un recurso ($gestor)
Leer directorio : readdir($gestor) Devuelve el nombre del fichero
[http://es2.php.net/manual/es/book.dir.php]
165
Clases y objetos Definicin de clases
Variables (atributos) y Funciones (mtodos) Las funciones acceden a los atributos class nombreClase { ... } $this : accedemos a los atributos y mtodos de la clase
desde dentro de la clase $this->name //accede al atributo $name $this->imprimir() //accede al mtodo imprimir
Desde fuera de la clase: $obj = new MiObjeto(); MiObjeto->imprimir();
Podemos crear tantos objetos (instancias) de la clase como queramos
166
Clases y objetos