PHP: Acceso a Bases de Datos
description
Transcript of PHP: Acceso a Bases de Datos
![Page 1: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/1.jpg)
PHP: Acceso a Bases de Datos
CI-2413
![Page 2: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/2.jpg)
PHP: Bases de datos
dbase dbm db++ FrontBase filePro Informix InterBase Ingres II SQL Server
mSQL Mysql Oracle Ovrimos SQL Server PostgreSQL SESAM Sybase
PHP permite el acceso a las siguientes bases de datos:
![Page 3: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/3.jpg)
PHP: Bases de datos
PHP también tiene interfaces abstractas: DBA (DataBase Abstraction) DBX ODBC
Recientemente también: PHP Data Objects Interface
![Page 4: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/4.jpg)
PHP: Bases de datos
Además podemos encontrar bibliotecas que tienen una interfaz de abstracción OO de bases de datos: PHPlib (http://www.sanisoft.com/phplib/manual/
) ADODB (http://php.weblogs.com/ADODB) PEAR (http://pear.php.net)
![Page 5: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/5.jpg)
PHP: MySQL
MySQL es un sistema de bases de datos desarrollado por la empresa MySQL AB. Tal empresa desarrolla las nuevas versiones y provee servicios como apoyo técnico. El sistema de bases de datos se da bajo licencia GPL que es una licencia de software libre o se vende bajo una licencia comercial.
![Page 6: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/6.jpg)
PHP: Funciones MySQL
Conexión al servidor: int mysql_connect ( [string server [, string
usuario [, string password]]]) Ejemplo:
<?php
$link = mysql_connect ("titanic", "root", “ci2413")
or die ("Could not connect");
print ("Connected successfully");
mysql_close ($link);
?>
![Page 7: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/7.jpg)
PHP: Funciones MySQL
Desconexión del servidor: int mysql_close ( [int identificador_de_enlace])
Ejemplo:
Ver el ejemplo anterior…
![Page 8: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/8.jpg)
PHP: Funciones MySQL
Selección de una base de datos: int mysql_select_db ( string base_de_datos [,
int identificador_de_enlace]) Ejemplo:
…
$bd = mysql_select_db("contaduria");
…
![Page 9: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/9.jpg)
PHP: Funciones MySQL
Envío de una consulta: int mysql_query ( string sentencia [, int
identificador_de_enlace]) Ejemplo:
<?php
$result = mysql_query ("SELECT * WHERE 1=1")
or die (“¡Consulta inválida!");
?>
![Page 10: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/10.jpg)
PHP: Funciones MySQL
Desplegando los resultados: object mysql_fetch_object ( int id_resultado [, int
tipo_de_resultado]) Ejemplo:
<?phpmysql_connect($servidor,$usuario,$clave);mysql_select_db("base");$resultado = mysql_query("select * from tabla");while($fila = mysql_fetch_object($resultado)) {
echo $fila->id_usuario;echo $fila->nombre;
}mysql_free_result($resultado);?>
![Page 11: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/11.jpg)
PHP: MySQLi
Funciona con PHP 4.1.3 y superior. Para tener la funcionalidad se debe compilar PHP con apoyo para la extensión mysqli.
![Page 12: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/12.jpg)
PHP: MySQLi (Clases)
mysqli Constructor
mysqli Métodos
autocommit change_user character_set_name close commit connect debug
dump_debug_info get_client_info get_host_info get_server_info init info kill multi_query more_results next_results options ping
![Page 13: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/13.jpg)
PHP: MySQLi (Clases)
prepare query real_connect escape_string rollback select_db ssl_set stat stmt_init store_results use_results thread_safe
Propiedades affected_rows client_info client_version errno error field_count host_info info insert_id protocol_version sql_state thread_id warning_count
![Page 14: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/14.jpg)
PHP: MySQLi (Clases)
mysqli_stmt Métodos
bind_param bind_result close data_seek execute fetch free_result result_metadata prepare send_long_data
reset store_results
Propiedades affected_rows errno param_count sqlstate
![Page 15: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/15.jpg)
PHP: MySQLi (Clases)
mysqli_result Métodos
close data_seek fetch_fields fetch_field_direct fetch_array fetch_assoc fetch_object fetch_row close field_seek
Propiedades current_field field_count lengths num_rows
![Page 16: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/16.jpg)
PHP: PostgreSQL
La base de datos PostgreSQL es un producto de Código Abierto. Postgres, desarrollada originalmente en el Departamento de Ciencias de la Computación de la Universidad de Berkeley, fue pionera de muchos de los conceptos objeto-relacionales ahora disponibles en algunas bases de datos comerciales. Provee apoyo a SQL92/SQL99, transacciones, integridad referencial, procedimientos almacenados y extendibilidad de tipo. PostgreSQL es un descendiente de código abierto del código original de Berkeley.
![Page 17: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/17.jpg)
PHP: ¡Problemas!
EscalabilidadMantenimientoPortabilidad
![Page 18: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/18.jpg)
PHP: Solución
La solución para resolver los problemas anteriores, es separar nuestro diseño en capas: Abstracción de Base de Datos Lógica PHP Despliegue (en formato HTML)
Varias herramientas permiten hacer esta separación, por ejemplo: ADODB y Smarty (Plantillas, las veremos después). Además la utilización de clases nos hará la vida fácil.
![Page 19: PHP: Acceso a Bases de Datos](https://reader036.fdocuments.mx/reader036/viewer/2022082712/56813dcf550346895da7968c/html5/thumbnails/19.jpg)
PHP: Solución
Leer el artículo Building Database Interfaces en http://www.zend.com/zend/tut/tutorial-wong4.php.
Leer el tutorial en español de ADODB en http://www.codigophp.com/arts/adodb.html.