Manual de ODBC
Manual de ODBC
Manual de ODBC
INTRODUCCIÓN.
Este es un breve manual dónde intentaré explicar como usar ODBC en PHP,
intentaré no divagar demasiado e ir directamente a los casos prácticos. Espero que os sea de
ayuda.
En este manual al referirme a ODBC, me refiero a las instrucciones con que PHP
permite manejar un DSN de sistema que acceda a una base de datos de cualquier tipo, se da
por supuesto que este DSN de sistema está correctamente configurado, apuntando a la base
de datos deseada y con el controlador correcto para esta BD.
Las instrucciones ODBC que se pueden utilizar con PHP, son muchas y muy
sencillas, permitiéndonos de esta manera hacer todas las operaciones básicas necesarias
para manejar una BD.
Usaremos ODBC cuando tengamos que atacar una base de datos que no sea ninguna
de las que PHP maneja cómodamente, mediante instrucciones creadas específicamente para
dichas BD, es decir, PostgresSQL, MySQL, y Oracle 8, principalmente. Aunque PHP
también tenga instrucciones para otras BD.
PHP tiene un repertorio de instrucciones para manejar ODBC, que por su sencillez
hace, que una vez hemos aprendido a manejarlas correctamente nos resulte más sencillo
trabajar siempre con estás instrucciones que no con otras de PHP para una BD concreta,
ejemplo: INTERBASE. Si ya hemos aprendido a manejar una vez las instrucciones para
ODBC, al manejar una BD ACCESS, en vez de buscar las instrucciones para INTERBASE,
ver sus particularidades, el orden de los parámetros, el número de estos, etc., etc., pues
podemos definir un DSN de sistema para acceder a la BD de INTERBASE, y atacar esta
con las mismas instrucciones que ya conocemos. Por supuesto, esto tiene sus ventajas y sus
inconvenientes, así que debe ser el diseñador el que tome la última decisión.
Para terminar con este apartado, decir que para mi ODBC, no es una manera mejor,
ni peor de acceder a una BD en concreto, es simplemente una opción más de la que
disponemos.
$dsn: Variable que contendrá el nombre del DSN. También podemos utilizar
directamente el nombre asignado a nuestro DSN entre comillas dobles.
Ej: “GESTION”
$usuario y $clave: Cómo sus nombres indican contendrán el nombre del usuario de
la BD y la clave de la BD de dicho usuario. También es posible utilizar estos
directamente encerrados entre comillas dobles.
Ej:
$conexion = odbc_connect("GESTION","usuario","clave") or die ("No se pudo
conectar con Gestión");
Con ODBC, al contrario que ocurre con MySQL, no es necesaria una segunda
instrucción para elegir la BD con la que vamos a trabajar ya que con el DSN, esta
queda perfectamente identificada.
Un ejemplo más detallado de como utilizar odbc_exec, con todos los pasos a seguir
sería:
//Realizamos la consulta
$rescodfamilia = odbc_exec($conexion, $sqlcodfamilia) or die ("no se ha podido
realizar la consulta");
Un ejemplo práctico:
//Este bucle recorre la consulta fila a fila, comprueba la condición e introduce los
//resultados de la consulta en un desplegable. Como podemos observar si la consulta
no tiene
//resultados nunca entraría en el bucle.
while(odbc_fetch_row($restipo))
{
$tipo=odbc_result($restipo, "TIPODOC");
if($tipodoc==$tipo)
{
echo "<option selected>$tipo</option>";
}
else
{
echo "<option>$tipo</option>";
}
}
echo "</select>”;
$num = odbc_num_fields($res);
odbc_result($res, $campo);
$campo, deberá contener el nombre del campo de la consulta cuyo valor se desea
obtener. Se puede utilizar directamente el nombre del campo, encerrado entre
comillas dobles.
odbc_free_result($res);
odbc_close($conexion);
Ejemplos prácticos
<?
//Establece una conexión con la BD y lanza un mensaje de error en el caso de que
esta no se haya realizado con éxito
//Inserta un registro en nuestra BD, en los campos indicados, con los valores que
contengan las variables indicadas en la cláusula VALUES
odbc_exec($conexion, $sqlinsert);
odbc_close($conexion);
header("Location:principal.php");
?>
<?
//Actualiza una fila de nuestra Base de Datos tal y como se indica en la instrucción
SQL
$sqlUpd="UPDATE FICHADOC
SET DESCRIFICHA='$descripcion', REF='$referencia',
TIPODOC='$tdoc', AMPDESCRI='$observaciones'
WHERE INDICE=$indice";
<?
// Establece una conexión con nuestra BD, arroja un error si esta no se ha realizado
//correctamente, y la instrucción SQL borra el registro de la base de datos que
coincida con
//el valor de la variable $indice en la tabla FICHADOC
?>
Conclusiones Finales
Casi siempre podremos utilizar ODBC, para comunicarnos con una Base de Datos
de cualquier tipo, así que estas instrucciones, se puede decir, que son las más genéricas para
la interacción con una BD y por lo tanto nos permiten obviar el tipo de la Base de Datos,
con la que estemos trabajando, así como sus particularidades, lo cual en algunos momentos,
sin duda, es una gran ventaja, y quizá nuestra mejor opción.
Para intentar sacar el máximo partido a este breve manual, es recomendable que si
aún no tenemos suficientes conocimientos de SQL busquemos un buen manual de SQL,
que al fin y al cabo es el lenguaje que nos permitirá comunicarnos con la BD.