jueves, 19 de abril de 2012


CONEXIÓN ORACLE A PHP:



Funciones básicas a usar:

· oci_connect("usuario","clave", "SID oracle"): establece la conexión con el servidor oracle.
Devuelve el descriptor de conexión. Si la base de datos no es local se pone delante del SID la IP
'172.16.1.2/ORACLE9I'.
· oci_close($conexion): Cierra la conexión.
· oci_error(): devuelve el último error encontrado.
· oci_parse($conexion, $sentencia): prepara una sentencia para su ejecución.
· oci_execute($sentencia): ejecuta una sentencia.
· oci_fetch_array($sentencia, OCI_ASSOC): devuelve la siguiente fila de resultados como una
matriz cuyo índice es el nombre de la columna. Ejemplo:
$query = "SELECT id, name, sal FROM fruits";
$s = oci_parse ($connection, $query);
oci_execute ($s);
while ($row = oci_fetch_array($statement, OCI_ASSOC)) {
echo $row['ID']."<br>";
echo $row['NAME']."<br>";
echo $row['SAL']."<br>";
}
oci_fetch_array($sentencia, OCI_NUM): devuelve la siguiente fila de resultados como una
matriz cuyo índice coincide con la posición de la columna a la derecha de la SELECT. Ejemplo:
$query = "SELECT id, name, sal FROM fruits";
$s = oci_parse($connection, $query);
oci_execute ($s);
while ($row = oci_fetch_array($s, OCI_NUM)) {
echo $row[0]."<br>";
echo $row[1]."<br>";
echo $row[2]."<br>";
}
· oci_num_rows($sentencia): devuelve el número de filas afectadas por el último INSERT,
UPDATE o DELETE.
<?php
$conexion = oci_connect("system","oracle","xe");
if (!$conexion)
{
$e = oci_error();
echo "HA ocurrido un error: " . htmlentities($e['message']);
exit();
}
$query = "SELECT * FROM EMPLE ";//NO PONER ; EN SENTENCIA SQL
$s = oci_parse($conexion , $query );
oci_execute($s);
$i =0;
while ($res= oci_fetch_array($s, OCI_ASSOC))
{
echo $res['EMP_NO'] . "*" . $res['APELLIDO'] . "*" . $res['OFICIO'] . "*" . $res['SALARIO'];
echo "<br/>"; //salto linea
$i= $i+1;
} // fin while
oci_close($conexion);
?>
INSERCIÓN DE UNA FILA EN EMPLE, BORRADO DE FILAS Y USO DE UNA FUNCIÓN PARA LISTAR EMPLEADOS:
<?php
function listar_emple($dep) {
$conexion = oci_connect("system","oracle",'xe');
$query = "SELECT * FROM EMPLE WHERE DEPT_NO= $dep";//NO PONER ; EN SENTENCIA SQL
$s = oci_parse($conexion , $query );
oci_execute($s);
$i =0;
while ($res= oci_fetch_array($s, OCI_ASSOC))
{
echo $res['EMP_NO'] . "*" . $res['APELLIDO'] . "*" . $res['OFICIO']
. "*" . $res['SALARIO'] ;
echo "<br/>";
$i= $i+1;
} // fin while
echo "<hr/>";
}//fin de la función de listado

//INSERCION DE DATOS EN EMPLE
$conexion = oci_connect("system","oracle",'xe');
$E =1236;
$APE='LOPEZ';
$D=10;
$OFI='EMPLEADO';
$SAL=1500;
$query = "INSERT INTO EMPLE (EMP_NO,APELLIDO, OFICIO, SALARIO,DEPT_NO) VALUES ($E, '$APE',
'$OFI', $SAL, $D) ";
$s = oci_parse($conexion , $query );
oci_execute($s);
$numero=oci_num_rows($s);
echo "Filas insertadas: " . $numero . "<br/><hr/>";
//ELIMINACION DE EMPLE

$E =1236; //empleado a borrar
$query = "DELETE EMPLE WHERE EMP_NO = $E ";
$s = oci_parse($conexion , $query );
oci_execute($s);
$numero=oci_num_rows($s);
echo "Filas eliminadas: " . $numero . "<br/><hr/>";
listar_emple($D); //llamada a la función
oci_close($conexion);





Conexión con bases de datos PostgreSQL


Para establecer la conexión con una base de datos PostgreSQL desde PHP, se utiliza la función:

pg_connect("host=NombreHost dbname=BaseDatos user=Usuario password=Contraseña")
Cuyos parámetros, pasados como una cadena única, indican el nombre del servidor -o IP del mismo- ‘NombreHost’ donde se encuentra la base de datos, el nombre de la base de datos ‘BaseDatos’, el ‘Usuario’ de acceso a la base de datos, y la ‘Contraseña’ de acceso. En caso de éxito la función devuelve un identificador del enlace con el sistema de bases de datos.

A diferencia de MySQL, no es preciso indicar con otra función la base de datos a la que se desea acceder, ya que se ha facilitado como parámetro a la función de conexión.
Finalmente, para cerrar la conexión utilizamos:

pg_close($conexion)

Donde debemos pasarle como parámetro el enlace con la conexión inicialmente establecida.

Ejemplo:
<?php
 #Conectamos con PostgreSQL
 $conexion = pg_connect("host=192.168.0.3 dbname=BaseDatos user=Usuario
 password=Contraseña") or 
die ("Fallo en el establecimiento de la conexión");
 # ################################### # # 
Aquí insertaríamos las consultas sobre la base de datos
 # # ################################### # #
Cerramos la conexión con la base de datos pg_close($conexion); ?>

Conectando PHP y MySQL


Para la conexión utilizaremos la función mysql_connect y luego mysql_select_db el cual nos permite definir a que base de datos del servidor deseamos conectarnos.


$conexion = mysql_connect("localhost", "usuario", "clave");mysql_select_db("demo", $conexion); 

Obteniendo registros de la Base de Datos

Una vez que tenemos una conexión lo siguiente es extraer los datos, esto lo hacemos enviando consultas SQL mediante la función mysql_query. También obtenemos el numero total de registros devueltos por nuestra consulta.


$queEmp = "SELECT * FROM empresa ORDER BY nombre ASC";$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());$totEmp = mysql_num_rows($resEmp);

Mostrando los resultados

Finalmente mostramos los resultados obtenidos de nuestra consulta, para ello extraemos cada resultado utilizando la función mysql_fetch_assoc la cual devuelve una matriz asociativa utilizando los nombres de los campos de la tabla.


if ($totEmp> 0) {   while ($rowEmp = mysql_fetch_assoc($resEmp)) {      echo "<strong>".$rowEmp['nombre']."</strong><br>";     echo "Direccion: ".$rowEmp['direccion']."<br>";      echo "Telefono: ".$rowEmp['telefono']."<br><br>";   }}



Primero se verifica si existen resultados y luego en cada pasada de la sentencia While si existe el siguiente resultado para luego mostrarlo. Así como realizar  la consulta de registros, podemos insertar, editar y eliminar registros enviando sentencias SQL a la base de datos.