Download PHP: Acceso a Bases de Datos
Document related concepts
Transcript
PHP: Acceso a Bases de
Datos
CI-2413
PHP: Bases de datos
PHP permite el acceso a las siguientes
bases de datos:
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 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.
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
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: 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 objetorelacionales 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/tutorialwong4.php.
Leer el tutorial en español de ADODB en
http://www.codigophp.com/arts/adodb.html
.