tablas que mantienen relaciones unas con otras entre s, permitiendo almacenar informacin en forma ntegra y consistente.
PHP podemos mencionar MySQL, MS SQLServer, Oracle y tambin se usa IBM UDB/DB2.
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
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
base de datos
Explicar
registros.
Sentencias SQL para recuperar registros de las
tablas.
En PHP, dichas operaciones se realizan mediante
funciones.
14/05/2013
bases de datos.
Las funciones para trabajar con cada base de datos
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. 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. Este conjunto de APIs es uniforme entre las bases
de datos relacionales.
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. Por ejemplo:
14/05/2013
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
14/05/2013
<?
<?
Insertar Registros
VALUES(10,'TV',60000);";
// 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); ?>
<?
<?
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); ?>
14/05/2013
<?
Eliminar Registros
$id_stmt=odbc_prepare($id_conn, $strsql); odbc_execute($id_stmt);
// Eliminar registros de una tabla $strsql = "DELETE FROM PRODUCTOS WHERE PROD_COD = 10; ";
?>
<?
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); ?>
una cadena que contiene el mensaje de error ODBC o una cadena vacia si no hay error.
$id_conn = odbc_connect(SAMPLEDSN,db2admin,password.1) if ($id_conn == 0) { $sqlerror = odbc_errormsg($id_conn); echo "$sqlerror"; } ?>
14/05/2013
mysql_connect(host:numpuerto,$userid, $password)
con una base de datos utilizando una extensin sta debe estar disponible.
mysql_pconnect(host:numpuerto,$userid,$password)
la funcion dl().
14/05/2013
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(); } ?>
mysql_query() enva una consulta (sentenciaSQL) a la base de datos que est activa en el servidor asociado con el identificador de conexin $idConn. 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.
14/05/2013
$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>
$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>
$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>
$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>
14/05/2013
$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>
$fila = mysql_fetch_row($result);
echo $fila[0]; retornado echo $fila[1]; retornado } ?> // //El El EMP_COD del del primer primer registro registro EMP_NOMBRE
<?php
$result = mysql_query($strsql,$idConn);
if (!$result) { die('Sentencia no ejecutada:'. mysql_error()); } ?>
if ($result) {
$fila = mysql_fetch_array($result);
echo $fila[0]; // Equivalente a: // $fila[EMP_COD] echo $fila[1]; // Equivalente a: // $fila[EMP_NOMBRE] } ?>
14/05/2013
<?php
<?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); ?>
if ($result) {
$fila = mysql_fetch_assoc($result);
echo $fila[EMP_COD]; echo $fila[EMP_NOMBRE]; } ?>
<?php
if ($result) {
$objfila = mysql_fetch_object($result);
echo $objfila->EMP_COD; echo $objfila->EMP_NOMBRE; } ?>
10
14/05/2013
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
Crear Clases y Objetos en PHP Describir la Herencia en PHP Conocer cmo se implementa el Polimorfismo en
Objetivos de Aprendizaje
PHP
Crear Clases Abstractas e Interfaces Discutir como se realiza la clonacin de objetos
11
14/05/2013
Definicin de Clases
"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; } } ?>
<?php /* $objeto->nombre_atributo; $objeto->nombre_metodo; */ $obj1 = new ClaseA(); echo $obj1->var1; // A la variable se le quita el $ $obj1->mostrarVar(); ?>
Definicin de Objetos
Para crear una instancia de una clase, se crea
definicin de la clase, se utiliza la variable $this, que hace referencia a la instancia actual.
12
14/05/2013
Pblica: Los elementos pueden ser accedidos Protegida: Los elementos limitan el acceso slo a
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().
13
14/05/2013
<?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 */ ?> } }
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.
<?php
echo $objetoA->miConstante;
14
14/05/2013
El Operador de resolucin ::
El operador de resolucin, dobles dos puntos
<?php
El Operador de resolucin :: 3
echo ClaseA::CONST_A; echo ClaseB::estaticaB; ClaseB::mostrarEstaticas();
(::), es un smbolo que permite acceder a los atributos o mtodos estticos y las constantes de una clase.
?>
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
<?php
El Operador de resolucin :: 2
<?php
El Operador de resolucin :: 4
private $varPriv; protected $varProt; function __construct($valor) { $this->$varPriv=$valor; $this->$varProt=$valor; } protected function miFuncion() {
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; }
class ClasePadre {
15
14/05/2013
<?php
El Operador de resolucin :: 5
Resumen
Se crearon Clases y Objetos en PHP Se describi la Herencia en 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"; } } ?>
en PHP
Se crearon Clases Abstractas e Interfaces Se discuti como se realiza la clonacin de objetos
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. cuando se necesita tener acceso desde una clase hija a los atributos o mtodos de su clase padre.
16
14/05/2013
de texto plano en los que se utilizan etiquetas para delimitar los elementos del documento.
Sin embargo, XML define estas etiquetas en funcin
del tipo de datos que est describiendo y no de la apariencia que tendrn en la pgina.
Adems de permite crear nuevas etiquetas y ampliar
las existentes.
Conocer en que consiste XML Utilizar la extensin DOM de PHP para trabajar con
Objetivos de Aprendizaje
documentos XML
Crear
que
puedan
manipular
17
14/05/2013
Extensin de PHP para trabajar con La extensin para soporte a XML ha sido reXML estructurada a partir de PHP 4.3.0. Antes se
necesitaba incorporar la extensin domxml para poder manipular los documentos XML.
Ahora
loadXML(codigoXml)
se puede utilizar las funciones DOM (Document Object Model), que ya vienen incorporadas en PHP. funciones, son parte del ncleo de PHP. Utilizaremos las funciones de la extensin DOM para manipular documentos XML.
load(nombre_archivo.xml)
saveXML()
un objeto DOMDocument y lo retorna en un string. Esta funcin generalmente se llama despues de cargar un documento XML.
<?php $docXml = new DOMDocument(); /* Se carga el documento XML en el objeto $docXml */ $docXml->load('NotasMaterias.xml'); $codXML = $docXml->saveXML(); // Captura el documento XML echo ?> $codXML; // Se imprime el contenido
/*
La funcion saveXML() captura el documento XML cargado en el objeto $docXml y retorna el contenido en un string */
18
14/05/2013
un objeto DOMDocument y lo almacena en un archivo. Esta funcin generalmente se llama despus de crear un documento XML.
<?php $strXml="<Materias><Materia>Quimica</Materia></Materias>"; $docXml = DOMDocument::loadXML($strXml); // Se guarda el contenido en un archivo $docXml->save("materias.xml"); ?>
con
la
funcin
CreateTextNode($contenido)
instancia
de
la
clase
Crea una nueva instancia de la clase DOMText. Este texto no ser parte del documento a menos
con
la
funcin
del elemento que se va a crear y $valor el contenido de ese elemento. Si no se especifica $valor, se crea un elemento vaco.
del
19
14/05/2013
una nueva instancia de la clase DOMNodeList con todos los elementos que posean un atributo ID con el valor dado ($IdElemento), siguiendo el orden como han sido encontrados en el documento. Recibe como parmetro el id del (los) elemento(s) que se quiere obtener. DOMNodeList seleccionados. con todos los elementos
una nueva instancia de la clase DOMNodeList con todos los elementos que tengan el nombre dado, siguiendo el orden como han sido encontrados en el documento. como parmetro el nombre del(los) elemento(s) que se quiere obtener. Si se coloca como parmetro el asterisco (*), retorna todos los elementos del documento. DOMNodeList seleccionados. con todos los elementos
Recibe
20
14/05/2013
elemento especificado.
Recibe como parmetro el nodo que se quiere
eliminar. removeAttribute($nombreAtributo)
Elimina el atributo especificado de un nodo. Recibe como parmetro el nombre del atributo que
Resumen
Se conoci en qu consiste XML Se utiliz la extensin DOM de PHP para trabajar
documentos XML
Se conoci en qu consiste la librera estndar de
PHP
21