Manejo de las bases de datos

1 Manejo de las bases de datosTemas: • Conexión del servi...
Author: Alicia Murguia
0 downloads 2 Views

1 Manejo de las bases de datosTemas: • Conexión del servidor PostgreSQL • Creación y mantenimiento de bases de datos desde PHP • Manipulación de bases de datos y actualizaciones de registros • Listado de funciones de PHP para trabajar con PostgreSQL

2 Conexión del servidor // Connecting, selecting database if (!$dbconn=pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb ")) { echo "Error Conectando al servidor de la Base de Datos: " . pg_last_error(); }else echo "Conexion Establecida"; //Cerrando Conexión pg_close($dbconn); ?>

3 Configuración del PHP.ini1.- Modificamos el PHP.ini para agregar la extensión de pgsql. En ambiente Windows basta con teclear en menú ejecutar php.ini para abrirlo y modificarlo. En linux deberas de localizarlo en la carpeta de Apache Dentro de este archivo, en el caso de windows bastara con descomentar la siguiente línea: extension=php_pgsql.dll 3- Todo esto con el fin de preparar la conexión. Es importante reiniciar el servidor Apache una vez guardados los campos.

4 Consultas a la Base de Datos Pagina index de prueba /* ********************* */ /* Conexion a PostgreSQL */ /* Conexion a la base de datos */ $conexion = pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb "); if (!$conexion) { echo "

Problemas de conexion con la base de datos.
"; exit; } //Continua

5 Consultas a la Base de Datos$sql="SELECT * FROM tbl_region ORDER BY id_region;"; /* Ejecuta y almacena el resultado de la orden SQL en $resultado_set */ $resultado_set = pg_Exec ($conexion, $sql); $filas = pg_NumRows($resultado_set); /* Presenta la informacion almacenada en $resultado_set */ for ($j=0; $j < $filas; $j++) { echo "Id: ".pg_result($resultado_set, $j, 0)."
Región: ".pg_result($resultado_set, $j, 1)."

"; } /* Cierra la conexion con la base de datos */ pg_close($conexion); ?>

6 Consultas a la Base de DatosCláusula INSERT INTO Ejercicio_3.php - Agregar una Región a la Tabla tbl_region

7 Consultas a la Base de DatosCláusula INSERT INTO $action=$_REQUEST['action']; if ( $action == "agregar" ) { $descripcion=$_POST['descripcion']; $sql="INSERT INTO tbl_region (id_region, descripcion) VALUES (NEXTVAL('sq_region_id'), '$descripcion')"; $conexion = pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb "); if (!$conexion) { echo "

Problemas de conexion con la base de datos.
"; exit; } //Continua

8 Consultas a la Base de DatosCláusula INSERT INTO pg_query($conexion,$sql) or die("El proceso de actualización falló: " . pg_last_error() ); pg_close($conexion); echo " "; } ?>

9 Consultas a la Base de Datos

Regiones
Descripción:

10 Consultas a la Base de DatosEjercicio_4.php Listar el contenido de la tabla Región Colocar un link a la misma página que contenga el código de la región Eliminar la región seleccionada

11 Consultas a la Base de Datosif ( $action == "borrar" ) { $id=$_GET['id']; $sql="DELETE FROM tbl_region WHERE id_region=$id;"; $conexion = pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb "); if (!$conexion) { echo "

Problemas de conexion con la base de datos.
"; exit; } pg_query($conexion,$sql) or die("El proceso de actualización falló: " . pg_last_error() ); echo " "; ?>

12 Consultas a la Base de Datos echo '

PHP y PostgreSQL

'; echo '

Lista de Regiones

';
echo '';echo '';$sql="SELECT * FROM tbl_region"; //Query$conexion = pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb ");if (!$conexion) {echo "
Problemas de conexion con la base de datos.
";
exit;}$result=pg_query($conexion,$sql) or die("El proceso de actualización falló: " . pg_last_error() );

13 Consultas a la Base de Datos// Se hace un loop a través del result $filas = pg_numrows($result); for ($i=0; $i < $filas; $i++){ $estaFila = pg_fetch_row ($result,$i); $id = $estaFila[0]; $descripcion = $estaFila[1]; ?>

} //Fin del loop pg_close($conexion);
Descripción
">Borrar


14 Consultas a la Base de DatosEjercicio_5.php Crear un combo haciendo uso de una función PHP

15 Consultas a la Base de Datosfunction crear_combo ($nombre_combo,$codigo_actual,$size_combo,$evento_java_script_form="",$operacion=1){ $conexion = pg_connect("host=localhost port=5432 user =postgres password=postgres dbname=ventasdb "); if (!$conexion) { echo "

Problemas de conexion con la base de datos.
"; exit; } $sql="SELECT * FROM tbl_region"; $result=pg_query($conexion,$sql) or die("El proceso de actualización falló: " . pg_last_error() );

16 Consultas a la Base de Datos// Se hace un loop a través del result $filas = pg_numrows($result); echo "\n"; pg_close($conexion); //Fin de la Función ?>

18 Consultas a la Base de Datos $codigo_actual = $_POST['cmb_region']; ?>

Regiones
Región:

19 Consultas a la Base de DatosEjercicio_6.php Trabajar con Combos anidados EL primer combo debe seleccionar la región y el segundo las ciudades que guardan relación con la región seleccionada Ver Archivo Ejercicio_6.php

20 Consultas a la Base de DatosEjercicio 7 Crear un archivo de nombre librería.php Crear funciones genericas de conexión a base de datos, colocarlas en el archivo librería.php Hacer pruebas invocando a las funciones realizadas.

21 Consultas a la Base de DatosEjercicio 8 Listar el contenido de la tabla tbl_productos, mostrando dos registros por pagina, es decir realice una paginación de registros.

22 Consultas a la Base de DatosEjercicio 9 Realizar una página que incorpore las funciones básicas (Consultar, Agregar, Modificar, y Eliminar) sobre la tabla tbl_clientes

23 Consultas a la Base de DatosEjercicio 10 Visualizar el contenido de la tabla clientes haciendo uso de las funciones php suministradas por el facilitador (visualizar_ext.php)

24 Consultas a la Base de DatosEjercicio 11 Realizar una página que incorpore las funciones básicas (Consultar, Agregar, Modificar, y Eliminar) sobre la tabla tbl_productos. En la medida de lo posible, hacer uso de los códigos suministrados, tales como, visualizar una tabla (visualizar_ext.php), Paginear una tabla, otros que considere.

25 Transacciones Las transacciones son un concepto fundamental de todos los sistemas de bases de datos. El punto esencial de una transacción es que empaqueta múltiples pasos dentro de una operación única, todo o nada. Los estados intermedios entre cada paso no son visibles a otras transacciones concurrentes,y si ocurre alguna falla que previene que la transacción se complete, en definitiva, ninguno de los pasos afectan a la base de datos.

26 Transacciones BEGIN: comienza una transacción en modo encadenadoROLLBACK Transacción es abortada Posibles cambios ignorados COMMIT: Realiza la transacción actual. Los datos son modificados físicamente en el Sistema de Almacenamiento LOCK:  Explícitamente bloquea una tabla dentro de una transacción

27 Ejemplo manejo de Transaccionesif (!(pg_Exec($link,"BEGIN WORK"))){ echo("Error al iniciar transacción en la base de datos
"); //exit(); si estamos en una funcion }
$exito= pg_exec($conexion,$sql); if ($ exito){ pg_Exec($link,"COMMIT WORK"); } else { pg_Exec($link,"ROLLBACK WORK"); echo "No se pudo realizar la inserción
";
}

28 Transacciones Ejercicio Modificar las funciones del ejercicio 9 para poder trabajar con transacciones.

29 Transacciones if (!(pg_exec($conexion,"BEGIN WORK"))){echo("Error al iniciar transacción en la base de datos
");
exit(); }else{ echo "Inicio de Transacción
";
} $exito= pg_exec($conexion,$sql);// or die("El proceso de actualización falló: " . pg_last_error() ); if (!$exito){ pg_exec($conexion,"ROLLBACK WORK"); echo "No se pudo realizar la inserción
";
pg_exec($conexion,"COMMIT WORK"); echo " "; pg_close($conexion);

30 Transacciones Ejercicio_13:- Hacer uso de la funciones Adodb conection

31 Conexión con ADODB $DB = NewADOConnection('postgres'); $server='localhost'; $user='postgres'; $pwd='postgres'; $db='ventasdb'; $DB->Connect($server, $user, $pwd, $db); # M'soft style data retrieval with binds $rs = $DB->Execute("select * from tbl_clientes where rut_cliente=3"); //$rs = $DB->Execute("select * from tbl_clientes where rut_cliente=?",array($key)); while (!$rs->EOF) { print_r($rs->fields); $rs->MoveNext(); }

32 Conexión con ADODB # PEAR style data retrieval$rs = $DB->Execute("select * from tbl_productos where id_productos=1"); while ($array = $rs->FetchRow()) { print_r($array); } # Alternative URI connection syntax: //$DB = # No need for Connect or PConnect when using URI syntax $ok = $DB->Execute("update tbl_productos set nombre = 'Lapiz Mongol'"); if (!$ok) mylogerr($DB->ErrorMsg()); ?>

33 Transacciones Ejercicio_14:Hacer uso de la funciones Adodb conection, e implementar una pagina php para realizar las funciones básicas sobre la tabla vendedores