SlideShare una empresa de Scribd logo
1 de 19
Curso de Introducción a PHP 5
Tema 4: PHP 5 y MySQL
*POO = Programación Orientada a Objetos
1. PDO. PHP Data Objects
2. MySQLi
Curso de Introducción a PHP 5
Tema 4: PHP 5 y MySQL
*POO = Programación Orientada a Objetos
1. PDO. PHP Data Objects
2. MySQLi
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
PDO es una librería para conectarse a bases de datos.
PDO es una capa de abstracción de acceso a datos. No importa qué BD, siempre se
utilizan las mismas funciones.
PDO necesita tener instalado el driver específico de cada base de datos (pdo_mysql,
pdo_sqlite, pdo_odbc, ..)
PDO NO es una capa de abstración de acceso a base de datos (DBAL). No reescribe
código SQL ni simula propiedades no disponibles.
PDO está completamente orientado a objetos
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Conectándonos a una base de datos (MySQL)
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
DNS
Conectándonos con “cuidado”
OPCIONALES
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
} catch (PDOException $e) {
    print "Imposible conectar con la BD: " . $e->getMessage();
    die();
}
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Cerrando la conexión con la base de datos
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// Hacer algo
unset($dbh);
Ejecutando una petición SQL contra la base de datos (la mala manera)
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
  print_r($row);
}
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Cerrando la conexión con la base de datos
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// Hacer algo
unset($dbh);
Ejecutando una petición SQL contra la base de datos (la mala manera)
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
  print_r($row);
}
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Prepared Staments. Plantillas SQL con parámetros
Ventajas de usar prepared statements:
1. La petición SQL sólo necesita ser analizada una única vez. Más rápido.
2. Más difícil ataques SQL-injection.
Tan importante que PDO emula esta característica incluso en aquellos motores de
bases de datos que no lo soportan.
API: http://www.php.net/manual/en/class.pdostatement.php
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Prepared Statement sin parámetros
Prepared Statement con parámetros
$stmt = $dbh->prepare("SELECT * FROM FOO");
$stmt->exec();
$data = $stmt->fetchAll();
$name = 'one'; $value = 1;
$stmt = $dbh->prepare(
          "INSERT INTO FOO (name, value) VALUES (:name, :value)"
        );
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
$stmt->execute();
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Las transacciones en las bases de datos tienen dos propósitos
1. Mantener la base de datos en un estado “coherente” en caso de fallo del sistema.
2. Ejecutar el proceso de manera aislada.
Un ejemplo de transacción: transacción bancaria. O todo. O nada.
A: Atomic. O todo o nada
C: Consistent. O No se violan las restricciones de integridad (foreign keys)
I: Isolated. Los datos son bloqueados
D: Durable. La información se guarda de manera persistente
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Una transacción con PDO
try {
  $dbh = new PDO('odbc:SAMPLE', $user, $pass);
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $dbh->beginTransaction();
  $dbh->exec("INSERT INTO FOO (bar) values ('bar')");
  $dbh->commit();
  
} catch (Exception $e) {
  $dbh->rollBack();
}
Curso de Introducción a PHP 5
4.1. PDO. PHP Data Objects
Tema 4. PHP 5 y MySQL
Más información sobre PDO en
http://www.php.net/manual/en/book.pdo.php
Curso de Introducción a PHP 5
Tema 4: PHP 5 y MySQL
*POO = Programación Orientada a Objetos
1. PDO. PHP Data Objects
2. MySQLi
Curso de Introducción a PHP 5
4.2. MySQLi
Tema 4. PHP 5 y MySQL
MySQLi es realmente MySQL Improved Extension.
Implementa funcionalidad para conectarse a bases de datos MySQL 4.1+
Versión POO de las funciones mysql_xxx();
Curso de Introducción a PHP 5
4.2. MySQLi
Tema 4. PHP 5 y MySQL
Conéctandonos a una base de datos
$mysqli = new mysqli("localhost", "user", "password", "db_name");
Comprobando el estado de la conexión
if ($mysqli->connect_errno()) {
    printf("Error en la conexión: %sn", $mysqli->connect_err());
    exit();
}
Curso de Introducción a PHP 5
4.2. MySQLi
Tema 4. PHP 5 y MySQL
Cerrando la conexión con una base de datos
$mysqli = new mysqli("localhost", "user", "password", "db_name");
$mysqli->close();
Ejecutando una petición contra la base de datos
$query = "SELECT * FROM Ciudad";
$result = $mysqli->query($query);
while($row = $result->fetch_array())
{
echo $row['codigo_ciudad'];
}
Curso de Introducción a PHP 5
4.2. MySQLi
Tema 4. PHP 5 y MySQL
Utilizando prepared staments
$sql = 'INSERT INTO tablename VALUES(?, ?)';
$stmt = $mysqli->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param(“is”, 1, “test”);
$stmt->execute();
$stmt->close()
Curso de Introducción a PHP 5
4.2. MySQLi
Tema 4. PHP 5 y MySQL
Utilizando prepared staments
$sql = 'INSERT INTO tablename VALUES(?, ?)';
$stmt = $mysqli->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param(“is”, 1, “test”);
$stmt->execute();
$stmt->close() i Integer
d Decimal
s String
b Blob
Curso de Introducción a PHP 5
4.2. MySQLi
Tema 4. PHP 5 y MySQL
MySQLi no soporta transacciones, en su lugar debemos confiar en COMMIT y
ROLLBACK de la base de datos.
MySQLi por defecto implementa auto-commit, despues de cualquier consulta de hace
automáticamente un COMMIT a la base de datos.
Para desactivar este comportamiento
$mysqli->autocommit(FALSE);
Para forzar COMMIT y ROLLBACK
$mysqli->commit();
$mysqli->rollback();
Curso de Introducción a PHP 5
4.2. MySQLi
Tema 4. PHP 5 y MySQL
Más información sobre MySQLi
http://es.php.net/manual/en/book.mysqli.php

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. Ejercicios
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
2 7 ficheros_php
2 7 ficheros_php2 7 ficheros_php
2 7 ficheros_php
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-php
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
php y mysql
php y mysqlphp y mysql
php y mysql
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
php
phpphp
php
 
Manual PHP 7
Manual PHP 7Manual PHP 7
Manual PHP 7
 
PHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadPHP Tema 7 - Seguridad
PHP Tema 7 - Seguridad
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 

Destacado

Php y MySQL
Php y MySQLPhp y MySQL
Php y MySQLKaris
 
Users - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLUsers - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLAndrés Pizarro
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPJesus Castagnetto
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Wilian
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosRightster
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Ángel Acaymo M. G.
 
Visual basic 6 (curso paso a paso)
Visual basic 6 (curso paso a paso)Visual basic 6 (curso paso a paso)
Visual basic 6 (curso paso a paso)Carlos Martinez
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.comoctabio
 
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...ingenran
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E InstruccionesEdgar A. Cruz Huaman
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basicRafael Tobar Jame
 
Programacion Estructurada en C - Antonakos
Programacion Estructurada en C - AntonakosProgramacion Estructurada en C - Antonakos
Programacion Estructurada en C - AntonakosGustavo Tello Pais
 

Destacado (20)

Php y MySQL
Php y MySQLPhp y MySQL
Php y MySQL
 
Users - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLUsers - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQL
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
 
Php.y.my sql
Php.y.my sqlPhp.y.my sql
Php.y.my sql
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. Ejemplos
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.
 
Visual basic 6 (curso paso a paso)
Visual basic 6 (curso paso a paso)Visual basic 6 (curso paso a paso)
Visual basic 6 (curso paso a paso)
 
php-mysql
php-mysqlphp-mysql
php-mysql
 
Includes y $GET
Includes y $GETIncludes y $GET
Includes y $GET
 
mejorando con php
mejorando con phpmejorando con php
mejorando con php
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.com
 
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
 
Php - Operadores básicos
Php - Operadores básicosPhp - Operadores básicos
Php - Operadores básicos
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
 
Programacion Estructurada en C - Antonakos
Programacion Estructurada en C - AntonakosProgramacion Estructurada en C - Antonakos
Programacion Estructurada en C - Antonakos
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Desarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sqlDesarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sql
 
MVC
MVCMVC
MVC
 

Similar a Iniciación PHP 5. PHP y MySQL

Similar a Iniciación PHP 5. PHP y MySQL (20)

PDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHPPDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHP
 
Mysql adodb pdf_php
Mysql adodb pdf_phpMysql adodb pdf_php
Mysql adodb pdf_php
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Mysql java
Mysql javaMysql java
Mysql java
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Mysql3
Mysql3Mysql3
Mysql3
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
S8-POO-4.2 BDD
S8-POO-4.2 BDDS8-POO-4.2 BDD
S8-POO-4.2 BDD
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Introduccion al PHP.ppt
Introduccion al PHP.pptIntroduccion al PHP.ppt
Introduccion al PHP.ppt
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Masterclass ADWE Madrid
Masterclass ADWE MadridMasterclass ADWE Madrid
Masterclass ADWE Madrid
 
S8-BDD
S8-BDDS8-BDD
S8-BDD
 
MOSKitt: Ingeniería Inversa de Bases de Datos con MOSKitt
MOSKitt: Ingeniería Inversa de Bases de Datos con MOSKittMOSKitt: Ingeniería Inversa de Bases de Datos con MOSKitt
MOSKitt: Ingeniería Inversa de Bases de Datos con MOSKitt
 
Framework kahana
Framework kahanaFramework kahana
Framework kahana
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 

Último

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Último (20)

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 

Iniciación PHP 5. PHP y MySQL

  • 1. Curso de Introducción a PHP 5 Tema 4: PHP 5 y MySQL *POO = Programación Orientada a Objetos 1. PDO. PHP Data Objects 2. MySQLi
  • 2. Curso de Introducción a PHP 5 Tema 4: PHP 5 y MySQL *POO = Programación Orientada a Objetos 1. PDO. PHP Data Objects 2. MySQLi
  • 3. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL PDO es una librería para conectarse a bases de datos. PDO es una capa de abstracción de acceso a datos. No importa qué BD, siempre se utilizan las mismas funciones. PDO necesita tener instalado el driver específico de cada base de datos (pdo_mysql, pdo_sqlite, pdo_odbc, ..) PDO NO es una capa de abstración de acceso a base de datos (DBAL). No reescribe código SQL ni simula propiedades no disponibles. PDO está completamente orientado a objetos
  • 4. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Conectándonos a una base de datos (MySQL) $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); DNS Conectándonos con “cuidado” OPCIONALES try {     $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); } catch (PDOException $e) {     print "Imposible conectar con la BD: " . $e->getMessage();     die(); }
  • 5. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Cerrando la conexión con la base de datos $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); // Hacer algo unset($dbh); Ejecutando una petición SQL contra la base de datos (la mala manera) $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) {   print_r($row); }
  • 6. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Cerrando la conexión con la base de datos $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); // Hacer algo unset($dbh); Ejecutando una petición SQL contra la base de datos (la mala manera) $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) {   print_r($row); }
  • 7. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Prepared Staments. Plantillas SQL con parámetros Ventajas de usar prepared statements: 1. La petición SQL sólo necesita ser analizada una única vez. Más rápido. 2. Más difícil ataques SQL-injection. Tan importante que PDO emula esta característica incluso en aquellos motores de bases de datos que no lo soportan. API: http://www.php.net/manual/en/class.pdostatement.php
  • 8. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Prepared Statement sin parámetros Prepared Statement con parámetros $stmt = $dbh->prepare("SELECT * FROM FOO"); $stmt->exec(); $data = $stmt->fetchAll(); $name = 'one'; $value = 1; $stmt = $dbh->prepare(           "INSERT INTO FOO (name, value) VALUES (:name, :value)"         ); $stmt->bindParam(':name', $name); $stmt->bindParam(':value', $value); $stmt->execute();
  • 9. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Las transacciones en las bases de datos tienen dos propósitos 1. Mantener la base de datos en un estado “coherente” en caso de fallo del sistema. 2. Ejecutar el proceso de manera aislada. Un ejemplo de transacción: transacción bancaria. O todo. O nada. A: Atomic. O todo o nada C: Consistent. O No se violan las restricciones de integridad (foreign keys) I: Isolated. Los datos son bloqueados D: Durable. La información se guarda de manera persistente
  • 10. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Una transacción con PDO try {   $dbh = new PDO('odbc:SAMPLE', $user, $pass);   $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   $dbh->beginTransaction();   $dbh->exec("INSERT INTO FOO (bar) values ('bar')");   $dbh->commit();    } catch (Exception $e) {   $dbh->rollBack(); }
  • 11. Curso de Introducción a PHP 5 4.1. PDO. PHP Data Objects Tema 4. PHP 5 y MySQL Más información sobre PDO en http://www.php.net/manual/en/book.pdo.php
  • 12. Curso de Introducción a PHP 5 Tema 4: PHP 5 y MySQL *POO = Programación Orientada a Objetos 1. PDO. PHP Data Objects 2. MySQLi
  • 13. Curso de Introducción a PHP 5 4.2. MySQLi Tema 4. PHP 5 y MySQL MySQLi es realmente MySQL Improved Extension. Implementa funcionalidad para conectarse a bases de datos MySQL 4.1+ Versión POO de las funciones mysql_xxx();
  • 14. Curso de Introducción a PHP 5 4.2. MySQLi Tema 4. PHP 5 y MySQL Conéctandonos a una base de datos $mysqli = new mysqli("localhost", "user", "password", "db_name"); Comprobando el estado de la conexión if ($mysqli->connect_errno()) {     printf("Error en la conexión: %sn", $mysqli->connect_err());     exit(); }
  • 15. Curso de Introducción a PHP 5 4.2. MySQLi Tema 4. PHP 5 y MySQL Cerrando la conexión con una base de datos $mysqli = new mysqli("localhost", "user", "password", "db_name"); $mysqli->close(); Ejecutando una petición contra la base de datos $query = "SELECT * FROM Ciudad"; $result = $mysqli->query($query); while($row = $result->fetch_array()) { echo $row['codigo_ciudad']; }
  • 16. Curso de Introducción a PHP 5 4.2. MySQLi Tema 4. PHP 5 y MySQL Utilizando prepared staments $sql = 'INSERT INTO tablename VALUES(?, ?)'; $stmt = $mysqli->stmt_init(); $stmt->prepare($sql); $stmt->bind_param(“is”, 1, “test”); $stmt->execute(); $stmt->close()
  • 17. Curso de Introducción a PHP 5 4.2. MySQLi Tema 4. PHP 5 y MySQL Utilizando prepared staments $sql = 'INSERT INTO tablename VALUES(?, ?)'; $stmt = $mysqli->stmt_init(); $stmt->prepare($sql); $stmt->bind_param(“is”, 1, “test”); $stmt->execute(); $stmt->close() i Integer d Decimal s String b Blob
  • 18. Curso de Introducción a PHP 5 4.2. MySQLi Tema 4. PHP 5 y MySQL MySQLi no soporta transacciones, en su lugar debemos confiar en COMMIT y ROLLBACK de la base de datos. MySQLi por defecto implementa auto-commit, despues de cualquier consulta de hace automáticamente un COMMIT a la base de datos. Para desactivar este comportamiento $mysqli->autocommit(FALSE); Para forzar COMMIT y ROLLBACK $mysqli->commit(); $mysqli->rollback();
  • 19. Curso de Introducción a PHP 5 4.2. MySQLi Tema 4. PHP 5 y MySQL Más información sobre MySQLi http://es.php.net/manual/en/book.mysqli.php