190 likes | 391 Views
PHP: Acceso a Bases de Datos. CI-2413. dbase dbm db++ FrontBase filePro Informix InterBase Ingres II SQL Server. mSQL Mysql Oracle Ovrimos SQL Server PostgreSQL SESAM Sybase. PHP: Bases de datos. PHP permite el acceso a las siguientes bases de datos:. PHP: Bases de datos.
E N D
PHP: Acceso a Bases de Datos CI-2413
dbase dbm db++ FrontBase filePro Informix InterBase Ingres II SQL Server mSQL Mysql Oracle Ovrimos SQL Server PostgreSQL SESAM Sybase PHP: Bases de datos • PHP permite el acceso a las siguientes bases de datos:
PHP: Bases de datos • PHP también tiene interfaces abstractas: • DBA (DataBase Abstraction) • DBX • ODBC • Recientemente también: • PHP Data Objects Interface
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)
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.
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); ?>
PHP: Funciones MySQL • Desconexión del servidor: • int mysql_close ( [int identificador_de_enlace]) • Ejemplo: Ver el ejemplo anterior…
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"); …
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!"); ?>
PHP: Funciones MySQL • Desplegando los resultados: • object mysql_fetch_object ( int id_resultado [, int tipo_de_resultado]) • Ejemplo: <?php mysql_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); ?>
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.
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 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 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 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 PHP: MySQLi (Clases)
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.
PHP: ¡Problemas! • Escalabilidad • Mantenimiento • Portabilidad
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.
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.