If I knew what I am doing, I would not call investigation
In: desarrollo
29 Nov 2006Cuando empezé a programar como muchos en php, con las primeras pautas que me dió mi amigo Juan Carlos (aka ñolaura) en lo referente a trabajar contra base de datos MySQL. Estos scripts eran masomenos asÃ:
[php]
$conexion = mysql_connect(’servidor’, ‘usuario’, ‘password’) or die(‘Error al intertar conectar : ‘ . mysql_error());
mysql_select_db(‘dbmibase’) or die(‘Error al seleccionar DB.’);
$sql = ‘SELECT campo1, campo2 FROM tabla’;
$resultado = mysql_query($sql) or die(‘Error en la consulta: ‘ . mysql_error());
while ($registro = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
foreach ($registro as $valor) {
echo $valor;
}
}
mysql_free_result($resultado);
mysql_close($conexion);
[/php]
Ahora estas tareas se pueden repetir en varios scripts segun tengamos que insertar, eliminar, actualizar y seleccionar uno o mas registros. Como lo hacÃa en un par de proyectos, hasta que descubrà algo que me facilitaba realizar estas tareas comunes.
Todas estas tareas se pueden simplificar con ezSQL; la cual es una clase en PHP que disminuye el trabajo cuando trabajabamos con bases de datos, ezSQL funciona con MySQL, Oracle8/9, InterBase, FireBird, PostgreSQL, MS-SQL, SQLite, SQLite C++. Esta librerÃa me ha sido muy útil en los últimos proyectos en que he trabajado.
Veamos como trabaja con MySQl:
[php]
// Incluimos el nucleo de ezSQL
include_once “ez_sql_core.php”;
// Incluimos el componente para trabajar con MySQL
include_once “ez_sql_mysql.php”;
// Ahora creamos e instanciamos un nuevo objeto para conectarnos a MySQL
$db = new ezSQL_mysql(‘usuario’,'password’,'dbmibase’,’servidor’);
// Realizamos una seleccion
$resultado = $db->get_results(“SELECT campo1, campo2 FROM tabla”);
// Mostramos el resultado de la consulta
foreach ( $resultado as $fila )
{
// Accedemos a los campos como un objeto
echo $fila->campo1;
echo $fila->campo2;
}
// Si solo queremos seleccionar una fila
$fila = $db->get_row(“SELECT campo1, campo2 FROM tabla WHERE campo1=’valor’”);
echo $fila->campo1;
echo $fila->campo2;
// Si queremos obtener un solo campo o variable
$variable = $db->get_var(“SELECT campo2 FROM tabla WHERE campo1=123456″);
echo $variable;
// Si queremos insertar, eliminar y actualizar
$db->query(“INSERT INTO tabla (campo1, campo2) VALUES (‘valor1′,’valor2′)”);
$db->query(“UPDATE tabla SET campo2 = ‘valorxxx’ WHERE campo1=’valor’”);
$db->query(“DELETE FROM tabla WHERE campo1=’valor’”);
[/php]
ezSQL tiene muchas cosas mas que nos facilitarán la vida a la hora de trabajar con base de datos, revisen la documentación para mas detalle y descárgalo si deseas probarlo.
Es todo por este post, nos leemos!
Bienvenido a este blog de Tecnología, Programación, Linux y demas tonterías de Juan Percy Rojas Cruz (a.k.a. Juanpe), joven programador, usuario y desarrollador de software libre. Este blog no tiene ningun "objetivo final", simplemente contar de las cosas que me están pasando en este momento, descargarme de algunas frustraciones, alojar algunos proyectos personales e intercambiar ideas del amplio mundo de la Tecnología. Este blog tampoco tiene ningún fin lucrativo, la única entrada de capital es la publicidad de adsense, que agradecería si me hicieran algun que otro click ;)
4 Responses to ezSQL Database Class – Facilitando el acceso a base de datos
necudeco
Noviembre 30th, 2006 at 2:02 pm
Pues yo uso adodb para php, que realmente hace lo mismo q tu libreria
.
Ahora que si por ahi encuentras una libreria que toma una base de datos y te permite crear objetos de esas tablas al mismo estilo rails, a la vez q te permite heredar esa super clase para expandirla.. por me avisas
Ju4npE
Noviembre 30th, 2006 at 2:27 pm
Pos yo alguna vez tb vi ADODB para PHP pero no me convencio mucho que digamos, ademas si compara los tamaños de ambas librerias pues prefiero usar ezsql. Pruebalo primero y luego
Juan Carlos
Diciembre 1st, 2006 at 9:15 pm
ADODB (n) prefiero mil veces eszql o pear, ademas se basa mas en lo que tu haces sobre ellas y con respecto a los tamaños d elas librerias la lok tiene razon
alexserver
Marzo 4th, 2007 at 4:42 am
En la empresa en donde estoy usamos una libreria similar a la que mencionas, la manera de extraer los datos es muy parecida, y en verdad nos ha facilitado el trabajo, sobre todo nos ayuda a abstraer la capa de enlace a datos de la capa de negocios.
Algo que extraño del modelo ADO, y el ADO.NET, en php, es que la insercion, eliminacion y actualizacion de registros no es automatica, como decia necudeco, cuando logre una libreria abstraer una tabla y manejarla como objeto, php igualara la potencia de acceso a datos que tienen los modelos ADO