Desarrollo de Aplicaciones Java Sql Postgres
-
Upload
omitsudaemon -
Category
Documents
-
view
264 -
download
2
description
Transcript of Desarrollo de Aplicaciones Java Sql Postgres
-
BASE DE DATOS
Luis Emilio Cabrera [email protected]
www.lucacrot.net/bd20151
Universidad del Bo BoFacultad de Ciencias Empresarias
IECI
Mayo 2015
-
NDICE
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 2 / 86
-
NDICE
ACCESO A BASE DE DATOS DESDE APLICACIONES
Veremos como se ejecutan comandos SQL desde un programa enun lenguaje anfitrin como PHP, C o Java.El uso de comandos SQL desde un programa anfitrin se denomi-na SQL embebido.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 3 / 86
-
NDICE
SQL EMBEBIDO
Las sentencias SQL se pueden utilizar en cualquier parte del pro-grama.Las sentencias SQL deben estar claramente identificadas de ma-nera que un pre-procesador pueda tratarlas antes de invocar elcompilador del lenguaje anfitrin.Pueden existir dos inconvenientes:
Los tipos de datos reconocidos por SQL podran no ser aceptadospor el lenguaje anfitrin y viceversa.SQL est orientado a conjuntos de datos (problema de impedancia)no as los lenguajes de programacin.
Este problema se resuelve mediante el uso de cursores.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 4 / 86
-
NDICE
CURSORES
SQL opera sobre conjuntos de registros, mientras que un leguajeanfitrin como C no soporta (de forma limpia) conjunto de regis-tros.Un cursor permite recuperar las filas de una relacin una por una.Se puede declarar un cursor sobre cualquier relacin o consultaSQL.
Un curso se puede abrir, posicionando el cursor justo antes de laprimera fila.Leer la siguiente fila, mover el cursor o cerrar el cursor.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 5 / 86
-
NDICE
INTERACCIN CON LA BASE DE DATOS (CURSOR)EXPLICITOS
Cursor explicito: SELECT recupera cero o una o ms tuplas.
Se requiere:Declarar el cursor.Abrir el cursor (OPEN).Leer los datos (FETCH).Cerrar el cursor y liberar los recursos (CLOSE).
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 6 / 86
-
NDICE
INTERACCIN CON LA BASE DE DATOS (CURSOR)EXPLICITOS
Declaracin del cursor: (dos formas)
FORMA 1 DECLARE. . .
CURSOR nombreCursor ISinstruccion SELECT
FORMA 2 DECLARE. . .CURSOR nombreCursor (param1 tipo1 , . . . ,
paramN tipoN ) ISinstruccion SELECT
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 7 / 86
-
NDICE
INTERACCIN CON LA BASE DE DATOS (CURSOR)
Abrir el cursorOPEN nombre_cursor ;OPEN nombre_cursor (valor1 , valor2 , . . . , valorN ) ;
Recuperar los datos del BufferFETCH nombre_cursor INTO lista_variables ;FETCH nombre_cursor INTO registro_PL /SQL ;
Cerrar el cursorCLOSE nombre_cursor ;
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 8 / 86
-
NDICE
INTERACCIN CON LA BASE DE DATOS (CURSOR)
dec la rac ion cursorCURSOR amigas IS
SELECT Nombre FROM amigosWHERE sexo= 'F ' ;
a b r i r cursorOPEN amigas ;r e c o r r e r cursorFETCH amigas INTO elNombre ;c e r r a r cursorCLOSE amigas ;
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 9 / 86
-
NDICE API
API
Una alternativa al uso de SQL embebido.Una API nos ofrece una interfaz estandarizada para objetos y pro-cedimientos.Permite pasar sentencias SQL desde un lenguaje anfitrin y pre-sentar conjuntos de tuplas de una forma amigable.Conectarse de manera remota a diversos SGBD.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 10 / 86
-
BASE DE DATOS DE PRUEBA
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 11 / 86
-
BASE DE DATOS DE PRUEBA
BASE DE DATOS DE PRUEBA
CREATE DATABASE Prueba ;CREATE TABLE nombres (id SERIAL pr imary key , nombre char (50) ) ;
INSERT INTO nombres (nombre ) values ( ' L izbe th ' ) , ( ' Paola' ) , ( ' Maria ' ) , ( ' Pedro ' ) , ( ' Laura ' ) ;
CREATE TABLE usuarios (id SERIAL pr imary key , nombre varchar (50) , clave
varchar (50) ) ;
INSERT INTO usuarios (nombre ,clave ) values ( ' L izbe th ' ,md5 ( ' 123 ' ) ) , ( ' Paola ' ,md5 ( ' 456 ' ) ) , ( ' Maria ' ,md5 ( ' 789 ') ) , ( ' Pedro ' ,md5 ( ' 012 ' ) ) , ( ' Laura ' ,md5 ( ' 345 ' ) ) ;
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 12 / 86
-
SQL EMBEBIDO EN JAVA
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 13 / 86
-
SQL EMBEBIDO EN JAVA
ODBC Y JDBC
ODBC (Open DataBase Connectivity) y JDBC (Java DataBase Con-nectivity) tambin permiten la integracin de SQL con lenguaje an-fitrin mediante una API.Ambos ofrecen una API y permiten el uso de un nico ejecutablepara acceder a diferentes SGBD sin re-compilacin.Por lo tanto, una aplicacin que usa ODBC o JDBC es indepen-diente del SGBD.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 14 / 86
-
SQL EMBEBIDO EN JAVA
CLASES E INTERFACES JDBC
Todos los controladores son manejados por la clase DriverMana-ger.Los pasos necesarios para enviar una consulta de base de datosa una fuente de datos y obtener los resultados son:
1 Cargar el controlador JDBC.2 Conectarse a la fuente de datos.3 Ejecutar las sentencias SQL.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 15 / 86
-
SQL EMBEBIDO EN JAVA
CARGAR EL CONTROLADOR
Cargar un controlador JDBC:Class .forName ( " o rac le / jdbc . d r i v e r . O rac led r i ve r " ) ;
Para registrar el controlador se puede incluir el controlador con laopcin:Djdbc .drivers=oracle /jdbc .driver
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 16 / 86
-
SQL EMBEBIDO EN JAVA
JDBC: EXCEPTIONS - WARNINGS
La mayora de las operaciones de java.sql pueden generar un SQ-LException si ocurre un error.SQLWarning es una subclase no tan severa de SQLException.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 17 / 86
-
SQL EMBEBIDO EN JAVA ORACLE SQL Y JAVA
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 18 / 86
-
SQL EMBEBIDO EN JAVA ORACLE SQL Y JAVA
ORACLE SQL Y JAVA: CONEXIN
impor t java .sql . * ;/ / En este paquete se encuentran una se r i e de clases
que permiten t r a b a j a r con Bases de datos .c lass dbAccess {p u b l i c s t a t i c vo id main (String args [ ] ) throws
SQLException {DriverManager .registerDriver (new oracle .jdbc .
driver .OracleDriver ( ) ) ;Connection conn = DriverManager .getConnection ( "
jdbc : o rac le : t h i n : @oracle . localdomain :1521: o r c l ", " username " , " password " ) ;
System .out .println ( "Me conecte :) " ) ;}
}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 19 / 86
-
SQL EMBEBIDO EN JAVA ORACLE SQL Y JAVA
ORACLE SQL Y JAVA: USOimpor t java .sql . * ;c lass getOneRow {
p u b l i c s t a t i c vo id main (String args [ ] ) throws SQLException {
DriverManager .registerDriver (new oracle .jdbc .driver .OracleDriver ( ) ) ;
Connection conn = DriverManager .getConnection ( "jdbc : o rac le : t h i n :@IP:PUERTO: o r c l " , "USER" , "PASSWORD" ) ;
Statement stmt = conn .createStatement ( ) ;ResultSet rs = stmt .executeQuery ( "SELECT NOMBRE
FROM NOMBRES WHERE ID=1 " ) ;rs .next ( ) ;String elNombre = rs .getString ( "NOMBRE" ) ;System .out .println ( " El Nombre con ID = 1 es " +
elNombre ) ;stmt .close ( ) ;
}}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 20 / 86
-
SQL EMBEBIDO EN JAVA POSTGRESQL Y JAVA
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 21 / 86
-
SQL EMBEBIDO EN JAVA POSTGRESQL Y JAVA
POSTGRESQL Y JAVA: CONEXIN
package postgresql ;
impor t java .sql . * ;impor t java .util .logging .Level ;impor t java .util .logging .Logger ;/ / En este paquete se encuentran una se r i e de clases que permiten
t r a b a j a r con Bases de datos .c lass dbAccess {p u b l i c s t a t i c vo id main (String args [ ] ) throws SQLException
{String database = " Prueba " ;String user = " postgres " ;String pass = " 123456 " ;DriverManager .registerDriver (new org .postgresql .Driver ( ) ) ;Connection conn = DriverManager .getConnection ( " jdbc : pos tg resq l
: / / 1 2 7 . 0 . 0 . 1 : 5 4 3 2 / "+database+" ? " ,user ,pass ) ;System .out .println ( "Me conecte :) " ) ;
}}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 22 / 86
-
SQL EMBEBIDO EN JAVA POSTGRESQL Y JAVA
POSTGRESQL Y JAVA: USO
package postgresql ;
impor t java .sql . * ;c lass getOneRow {
p u b l i c s t a t i c vo id main (String args [ ] ) throws SQLException{String database = " Prueba " ;String user = "USUARIO" ;String pass = "PASSWORD" ;DriverManager .registerDriver (new org .postgresql .Driver ( ) ) ;Connection conn = DriverManager .getConnection ( " jdbc : pos tg resq l
: / / 1 2 7 . 0 . 0 . 1 : 5 4 3 2 / "+database+" ? " ,user ,pass ) ;Statement stmt = conn .createStatement ( ) ;ResultSet rs = stmt .executeQuery ( "SELECT * FROM nombres " ) ;wh i le (rs .next ( ) ) {
String elNombre = rs .getString ( " nombre " ) ;System .out .println ( "Se l lama " + elNombre ) ;
}stmt .close ( ) ;
}} / / end c lase getRows
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 23 / 86
-
SQL EMBEBIDO EN JAVA POSTGRESQL Y JAVA
COMPILAR DESDE TERMINAL
javac cp postgresql .jar : . dbAccess .java
java cp postgresql .jar : . dbAccess
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 24 / 86
-
SQL EMBEBIDO EN JAVA SQL SERVER Y JAVA
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 25 / 86
-
SQL EMBEBIDO EN JAVA SQL SERVER Y JAVA
SQL SERVER Y JAVA: CONEXIN
impor t java .sql . * ;
c lass dbAccess {p u b l i c s t a t i c vo id main (String args [ ] ) throws
SQLException {String database = "BASEdeDATOS" ;String user = "USUARIO" ;String pass = "PASSWORD" ;DriverManager .registerDriver (new com .microsoft .
sqlserver .jdbc .SQLServerDriver ( ) ) ;Connection conn = DriverManager .getConnection ( "
jdbc : sq l se rve r : / / l o c a l h o s t ; instanceName=SQLEXPRESS; databaseName="+database+" ; user= "+user+" ; password="+pass+" ; " ) ;
System .out .println ( "Me conecte :) " ) ;}
}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 26 / 86
-
SQL EMBEBIDO EN JAVA SQL SERVER Y JAVA
SQL SERVER Y JAVA: USO
impor t java .sql . * ;c lass getOneRow {
p u b l i c s t a t i c vo id main (String args [ ] ) throws SQLException {String database = " Prueba1 " ;String user = "USUARIO" ;String pass = "PASSWORD" ;DriverManager .registerDriver (new com .microsoft .sqlserver .jdbc
.SQLServerDriver ( ) ) ;Connection conn = DriverManager .getConnection ( " jdbc : sq l se rve r
: / / l o c a l h o s t ; instanceName=SQLEXPRESS; databaseName="+database+" ; user= "+user+" ; password="+pass+" ; " ) ;
Statement stmt = conn .createStatement ( ) ;ResultSet rs = stmt .executeQuery ( "SELECT * FROM nombres " ) ;wh i le (rs .next ( ) ) {
String elNombre = rs .getString ( " nombre " ) ;System .out .println ( "Se l lama " + elNombre ) ;
}stmt .close ( ) ;
}}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 27 / 86
-
SQL EMBEBIDO EN JAVA SQLITE Y JAVA
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 28 / 86
-
SQL EMBEBIDO EN JAVA SQLITE Y JAVA
SQLITE Y JAVA: CONEXIN
impor t java .sql . * ;
c lass dbAccess {p u b l i c s t a t i c vo id main (String args [ ] ) throws
SQLException{
String database = " BasedeDatos " ;String user = "USUARIO" ;String pass = "PASSWORD" ;DriverManager .registerDriver (new org .sqlite .
JDBC ( ) ) ;Connection conn = DriverManager .getConnection ( "
jdbc : s q l i t e : "+database ) ;System .out .println ( "Me conecte :) " ) ;
}}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 29 / 86
-
SQL EMBEBIDO EN JAVA SQLITE Y JAVA
SQLITE Y JAVA: USO
package sqlite ;
impor t java .sql . * ;
c lass getOneRow {p u b l i c s t a t i c vo id main (String args [ ] ) throws SQLException {
String database = " BasedeDatos " ;String user = "USUARIO" ;String pass = "PASSWORD" ;DriverManager .registerDriver (new org .sqlite .JDBC ( ) ) ;Connection conn = DriverManager .getConnection ( " jdbc : s q l i t e : "+
database ) ;Statement stmt = conn .createStatement ( ) ;ResultSet rs = stmt .executeQuery ( "SELECT * FROM nombres " ) ;wh i le (rs .next ( ) ) {
String elNombre = rs .getString ( " nombre " ) ;System .out .println ( "Se l lama " + elNombre ) ;
}stmt .close ( ) ;
}}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 30 / 86
-
SQL EMBEBIDO EN C
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 31 / 86
-
SQL EMBEBIDO EN C POSTGRESQL Y C
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 32 / 86
-
SQL EMBEBIDO EN C POSTGRESQL Y C
LIBRERIA Y VARIABLE
En el caso de C y PostgreSQL es necesario ubicar la librera libpq-fe.hla cual se encuentra en la carpeta include del directorio de instalacinde PostgreSQL
EJEMPLO (MAC)
# inc lude " / L i b r a r y / PostgreSQL / 9 . 4 / i nc lude / l i bpqfe . h "
Para almacenar los resultados provenientes de la base de datos Post-greSQL, es necesario declarar variables que permitan esta accin. Pa-ra ello la libreria anterior tiene incluido el tipo PGresult.
PGresult *variable1 , *variabl2 ;
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 33 / 86
-
SQL EMBEBIDO EN C POSTGRESQL Y C
CONEXIN A LA BASE DE DATOS
La librera libpq-fe.h de PostgreSQL incluye un tipo de dato para alma-cenar la conexin a la base de datos. Es necesario tener declarada porlo menos una variable de conexin.
DECLARACINPGconn *conn ;
Utilizando la variable de conexin, establecemos la misma con la fun-cin PQsetdbLogin():
EJEMPLO
conn=PQsetdbLogin ( " IP " , " 5432 " ,NULL ,NULL , " BaseDeDatos " , "USUARIO" , "PASSWORD" ) ;
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 34 / 86
-
SQL EMBEBIDO EN C POSTGRESQL Y C
OTRAS VARIABLES DEFINIDAS EN LIBPQ-FE.H
Para verificar el estado de la conexin podemos utilizar la funcin PQs-tatus() la cual retorna verdadero o falso dependiendo si la conexin serealizo correctamente o no.
ESTADO DE LA CONEXINPQstatus (conn )
Si deseamos terminar la conexin con la base de datos, podemos utili-zar la funcin PQfinish(), la cual cortara dicha conexin.
TERMINAR LA CONEXIN
PQfinish (conn ) ;
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 35 / 86
-
SQL EMBEBIDO EN C POSTGRESQL Y C
EJEMPLO DE CONEXIN
# inc lude < s t d i o . h># inc lude < s t d l i b . h># inc lude < s t r i n g . h># inc lude " / L i b r a r y / PostgreSQL / 9 . 4 / i nc lude / l i bpqfe . h "# inc lude # inc lude / / Var iab le " conn " de l Tipo Conexion PGconnPGconn *conn ;i n t main ( ) {/ * * * * * * l o g i n a l a base de datos * * * * * * /conn=PQsetdbLogin ( " l o c a l h o s t " , " 5432 " ,NULL ,NULL , " Prueba " , " postgres " , " "
) ;printf ( " Conectando a l a BD\ n " ) ;i f (PQstatus (conn ) != CONNECTION_BAD ) {printf ( "DB conectada \ n " ) ;PQfinish (conn ) ;fflush (stdin ) ;
} e lseprintf ( " Al conectarse a l a BD\ n " ) ;
r e t u r n 0 ;}
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 36 / 86
-
SQL EMBEBIDO EN C POSTGRESQL Y C
EJEMPLO MANEJO BASE DE DATOSPGresult *elem , *elem1 ; / / v a r i a b l e resu l tadochar query [ 250 ] , *resevi=NULL , *res1=NULL ;i n t i ,j ,k ;strcpy (query , "SELECT * FROM nombres ; " ) ;/ / obtengo l a cant idad de f i l a s ( tup las ) y columnas (
campos )elem=PQexec (conn ,query ) ;printf ( " Consulta : % s \ n " ,query ) ;i n t tuplas = PQntuples (elem ) ;i n t campos = PQnfields (elem ) ;printf ( " t up las : % i \ n campos : % i \ n " ,tuplas ,campos ) ;/ / r eco r ro l a t ab l a r e s u l t a n t e de l a consu l ta y
muestro sus resu l tadosf o r (j=0;j
-
SQL EMBEBIDO EN C POSTGRESQL Y C
COMPILAR DESDE TERMINAL
COMPILAR EN LINUXgcc dbaccess .c o EJECUTABLE I /usr /include /postgresql L /usr /
include /postgresql lpq fnostackprotector
. / EJECUTABLE
COMPILAR EN MACgcc dbaccess .c o EJECUTABLE I /Library /PostgreSQL / 9 . 4 /include /
postgresql / L /Library /PostgreSQL / 9 . 4 /include /postgresql / lpq fnostackprotector
. / EJECUTABLE
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 38 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL)
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 39 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 40 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
API NATIVA EN POSTGRESQL
Para trabajar con la API nativa de PostgreSQL en PHP,deberemos haber compilado el intrprete con soporte para esteSGBD, o bien disponer ya del binario de PHP precompilado con elsoporte incorporado.En el caso de tenerlo que compilar, nicamente debemos indicarcomo opcin --with-pgsql.PSQL es el interprete de comandos de Postgres.Posteriormente, o en el caso de que ya dispongamos del binario,podemos validar que el soporte para PostgreSQL est incluidocorrectamente en el intrprete con la ejecucin del siguientecomando:
$ php i | grep PostgreSQL
PDO Driver f o r PostgreSQL => enabledPostgreSQL (libpq ) Version => 9 .3 .4
$
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 41 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
COMPRUEBA LA CONEXIN DE PHP CONPOSTGRESQL
Otra alternativa es probar grficamente por medio del navegadorsi el modulo est activo y/o configurado.Para eso debemos crear un archivo php con el siguiente cdigo yejecutarlo en el navegador.
CDIGO PGSQL.PHP
Si aparece una ventana en blanco es que falta instalar el modulo pgsql.Este archivo debera mostrar un 1 si est funcionando correctamente.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 42 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
CONFIGURACIN A TENER EN CUENTA
PHP proporciona unos parmetros de configuracin que nospermitirn controlar algunos aspectos del funcionamiento de lasconexiones con el SGBD, y las propias funciones de trabajo conla base de datos.En cuanto a los parmetros, debern situarse en el archivophp.ini, o bien configurarse para nuestra aplicacin en concretodesde el servidor web. Destacan los siguientes:
pgsql.allow_persistent: indica si vamos a permitir conexionespersistentes a PostgreSQL. Los valores posibles son true o false.pgsql.max_persistent: nmero mximo de conexionespersistentes permitidas por proceso.pgsql.max_links: nmero mximo de conexiones permitidas porproceso, incluyendo las persistentes.pgsql.auto_reset_persistent: detecta automticamenteconexiones persistentes cerradas y las elimina.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 43 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
INSTALAR MODULO PGSQL EN DEBIAN/UBUNTULINUX
Instalar el siguiente paquete y luego reiniciar apache.Despus probar nuevamente el archivo pgsql.php.
COMO ROOT INSTALA EL SIGUIENTE PAQUETE# aptget i n s t a l l php5pgsql
LUEGO REINICIAR APACHE (COMO ROOT)# apache2ct l r e s t a r t
# / e tc / i n i t . d / apache2 r e s t a r t
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 44 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
INSTALAR MODULO PGSQL EN WINDOWS
EN EL ARCHIVO DE CONFIGURACIN DE PHP PHP.INI DESCOMENTALAS SIGUIENTES LINEAS (ELIMINAR EL ;)
extension=php_bz2.dllextension=php_fileinfo.dllextension=php_gd2.dllextension=php_mysql.dllextension=php_mysqli.dllextension=php_pgsql.dllextension=php_pdo_pgsql.dll
Luego reinicia apache.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 45 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
INSTALAR MODULO PGSQL EN WINDOWS
Si php_pgsql.dll y php_pdo_pgsql.dll no estn en la carpeta de ins-talacin de PHP, puedes bajar el archivo comprimido y aadir la ru-ta directa como por ejemplo: extension=C:/php/ext/php_pgsql.dllo copiar los archivos a la carpeta de instalacin.El directorio de instalacin de PHP si instalaron WAMPP deberaser: C:\wamp\bin\php\php5.3.9\ext\ y dentro de el ubicar losarchivos.Luego reinicia apache.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 46 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
INSTALAR MODULO PGSQL EN MAC
Probando PSQL en la terminal
$ psql
Si el comando anterior entrega un mensaje de error referente a que elcomando no existe, lo que tenemos que hacer es lo siguiente:
$ which psql
Si el comando anterior arroja algo como /usr/bin/psql Esta apuntan-do al path de instalacin por defecto del gestor y no ha donde aca-bamos de instalarlo. Para resolver ese problema tenemos que editarnuestro archivo bash_profile.
$ nano ~/bash_profile
y aadimos la siguiente linea:
expor t PATH=/Library /PostgreSQL / 9 . 4 /bin :$PATH
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 47 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONFIGURACIN PREVIA
INSTALAR MODULO PGSQL EN MAC
Si al abrir el archivo notas que ya tienes una entrada con export, lonico que tienes que hacer es agregar /Library/PostgreSQL/9.4/binen alguna parte antes de $PATH, teniendo el cuidado de separar elpath de otros usando :, al final deberas de tener algo como:
expor t PATH=/opt /local /bin : / opt /local /sbin : / Library /PostgreSQL / 9 . 4 /bin :$PATH9.4 debe ser remplazado por la versin de postgreSQL que acabas de instalar
Escribimos una vez ms en la consola
$ source ~ / .bash_profile
Por ltimo probamos que este funcionando:
$ which psql
Y si todo esta bien debemos debemos de obtener algo como
/Library /PostgreSQL / 9 . 4 /bin /psql
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 48 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 49 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
ESTABLECIENDO LA CONEXIN
Por lo que respecta a la utilizacin de la API para la conexin yconsulta de bases de datos, empezaremos con un ejemplo:
CONEXION.PHP
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 50 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
ESTABLECIENDO LA CONEXIN
En las lneas anteriores, se establece la conexin a la base de datosseleccionada con que se va a trabajar y comprobamos que se harealizado correctamente.
El cdigo es bastante explcito y la mayora de errores al respectosuelen deberse a una mala configuracin de los permisos del usuariosobre la base de datos con la que debe trabajar.
Conviene estar muy atento, sobre todo a las direcciones de origen de laconexin, ya que, aunque podemos usar localhost como nombre deequipo, si el intrprete y el SGBD estn en el mismo servidor, sueleocurrir que PHP resuelve localhost al nombre real del equipo e intentaconectarse con esta identificacin.
As pues, debemos examinar cuidadosamente los archivos de registrode PostgreSQL y los usuarios y privilegios del mismo si falla la conexin.
Para establecer una conexin persistente, debemos utilizar la funcinpg_pconnect() con los mismos parmetros de pg_connect().
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 51 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
PARMETROS DE CONSULTAS
MUESTRADB.PHP
La funcin pg_query() se utiliza para lanzar la consulta a la basede datos.El resultado de la consulta se almacena an $ejecquery.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 52 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
PARMETROS DE CONSULTAS
Para comprobar errores, la API de PostgreSQL distingue entre un errorde conexin, y errores sobre los recursos devueltos. En el primer caso,deberemos usar pg_connection_status(), mientras que en elsegundo podemos optar por pg_last_error() o bienpg_result_error($recurso) para obtener el mensaje de error quepueda haber devuelto un recurso en concreto.
La funcin pg_query() puede devolver los siguientes resultados:FALSE si ha habido un error.Una referencia a una estructura si la sentencia ha tenido xito.
La funcin pg_affected_rows($recurso) nos permite conocer elnmero de filas que se han visto afectadas por sentencias deactualizacin, borrado o insercin. Esta funcin deber recibir comoparmetro el recurso devuelto por la funcin pg_query().
La funcin pg_num_rows($recurso) nos permite conocer el nmerode filas devuelto por sentencias de consulta.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 53 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
PARMETROS DE CONSULTAS
Una vez obtenido el recurso a partir de los resultados de la consulta,PHP proporciona multitud de formas de iterar sobre sus resultados ode acceder a uno de ellos directamente. Comentamos las ms desta-cadas:
$fila=pg_fetch_array($recurso,)
Esta funcin va iterando sobre el recurso, devolviendo una filacada vez, hasta que no quedan ms filas y devuelve FALSE. Laforma del array devuelto, depender del parmetro que puede tomar estos valores:
PG_NUM: devuelve un array con ndices numricos para loscampos. Es decir, en $fila[0] tendremos el primer campo delSELECT, en $fila[1], el segundo, etc.PG_ASSOC: devuelve un array asociativo donde los ndices son losnombres de campo o alias que hayamos indicado en la sentenciaSQL.PG_BOTH: devuelve un array con los dos mtodos de acceso.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 54 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
PARMETROS DE CONSULTAS
MUESTRADB.PHP
IDNombre
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 55 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
PARMETROS DE CONSULTAS
MUESTRADB.PHP
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
PARMETROS DE CONSULTAS
$objeto=pg_fetch_object($recurso)Esta funcin va iterando sobre los resultados, devolviendo unobjeto cada vez, de forma que el acceso a los datos de cadacampo se realiza por medio de las propiedades del objeto. Aligual que en el array asociativo, hay que vigilar con los nombresde los campos en consulta, evitando que devuelva campos con elmismo nombre fruto de combinaciones de varias tablas, ya quesolo podremos acceder al ltimo de ellos.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 57 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
PARMETROS DE CONSULTAS
Podemos pasar a la funcin pg_fetch_object() un segundoparmetro para indicar la fila concreta que queremos obtener:
$resultado = pg_fetch_all($recurso)Esta funcin devuelve toda la hoja de datos correspondiente a$recurso; es decir, una array con todas las filas y columnas queforman el resultado de la consulta.
$exito=pg_result_seek($recurso,$fila)
Esta funcin permite mover el puntero dentro de la hoja deresultados representada por $recurso hasta la fila quedeseemos. Deben tomarse las mismas consideraciones que en lafuncin mysql_data_seek().
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 58 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
OTROS PARMETROS DE CONSULTAS
Al igual que en MySQL, PHP tambin proporciona funcionesespecficas para trabajar con algunos aspectos particulares dePostgreSQL. Al tener ste ms funcionalidad que se aleja de loestndar debido a su soporte a objetos, estas funciones cobrarnms importancia. A continuacin comentamos las msdestacadas:
pg_field_name, pg_field_num, pg_field_size,pg_field_type: estas funciones proporcionan informacin sobrelos campos que integran una consulta. Sus nombres sonsuficientemente explcitos acerca de su cometido.pg_last_oid: esta funcin nos de vuelve el OID obtenido por lainsercin de una tupla si el recurso que recibe como parmetro esel correspondiente a una sentencia INSERT. En caso contrariodevuelve FALSE.pg_lo_create, pg_lo_open, pg_lo_export, pg_lo_import,pg_lo_read, pg_lo_write: estas funciones (entre otras)facilitan el trabajo con objetos grandes (LOB) en PostgreSQL.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 59 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
Las funciones pg_lo_import y pg_lo_export pueden tomararchivos como parmetros, facilitando la insercin de objetosbinarios en la base de datos.
EJEMPLO
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 60 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
CERRAR LA CONEXIN
Finalmente, comentaremos las funciones de liberacin y desconexin.En el primer caso, PHP realiza un excelente trabajo liberando recursosde memoria cuando la ejecucin en curso ya no se van a utilizar ms.Aun as, si la consulta devuelve una hoja de datos muy grande, puedeser conveniente liberar el recurso cuando no lo necesitemos.
Por lo que respecta al cierre de la conexin, tampoco suele ser ne-cesario, ya que PHP cierra todas las conexiones al finalizar la ejecu-cin y, adems, el cierre siempre est condicionado a la configura-cin de las conexiones persistentes. Tal como ya hemos comentado,si activamos las conexiones persistentes (o bien hemos conectado conpg_pconnect), esta funcin no tiene ningn efecto y, en todo caso,ser PHP quien decida cundo se va a cerrar cada conexin.
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 61 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
ARCHIVO CONEXION.PHP
Vamos a crear el archivo PHP que realizar la conexin con Post-greSQL.
CONEXION.PHP
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 62 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) CONECTAR PHP Y LA BASE DE DATOS
ARCHIVO INDEX.PHP (HEAD)
Toda pagina que utilice la base de datos debe tener en el Head el in-clude del archivo de conexin.
< !DOCTYPE html>
< t i t l e >Prueba PostgreSQL< / t i t l e >
< / head>
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 63 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: MOSTRAR TABLAS
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 64 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: MOSTRAR TABLAS
ARCHIVO INDEX.PHP (BODY)
IDNombre
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 65 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: MOSTRAR TABLAS
RESULTADO CONEXIN PHP Y POSTGRESQL
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 66 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: REGISTRAR USUARIO
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 67 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: REGISTRAR USUARIO
ARCHIVO INDEX.PHP (BODY)
Iniciar Sesion : < /div>
Usuario : < /td>
Contraseñ ;a : < /td>
Repita Contraseñ ;a : < /td>
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 68 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: REGISTRAR USUARIO
ARCHIVO INDEX.PHP (RESULTADO)
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 69 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: REGISTRAR USUARIO
ARCHIVO MUESTRADB.PHP (BODY)
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: REGISTRAR USUARIO
RESULTADO REGISTRAR USUARIO
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 71 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: VALIDACIN USUARIO
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 72 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: VALIDACIN USUARIO
ARCHIVO INDEX.PHP (BODY)
Iniciar Sesion : < / d i v >< / h4>
< t ab le >< t r >< td>Usuario : < / td>< td>< inpu t type="TEXT" name=" user " value=" ">< / td>< / t r >< td>Contraseñ ;a : < / td>< td>< inpu t type=" password " name=" cont ra " value=" ">< / td>
< / t r >< / t ab l e >< i npu t type=" submit " name=" Ent ra r " value=" En t ra r ">< / d i v
>< / td>< td>< / td>< / t r >< / t ab l e >< / d i v >< / form>< / body>< / html>LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 73 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: VALIDACIN USUARIO
ARCHIVO INDEX.PHP (RESULTADO)
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 74 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: VALIDACIN USUARIO
ARCHIVO MUESTRADB.PHP (BODY)
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: VALIDACIN USUARIO
RESULTADO VALIDAR USUARIO
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 76 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ACTUALIZAR USUARIO
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 77 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ACTUALIZAR USUARIO
ARCHIVO INDEX.PHP (BODY)
Iniciar Sesió ;n : < / d i v >< / h4>
< tab le >< t r >< td>Usuario : < / td>< td>< inpu t type=" t e x t " name=" user " value=" " requ i red>< / td>< / t r >< t r >< td>Contraseñ ;a Actual : < / td>< td>< inpu t type=" password " name=" cont ra " value=" " requ i red>< / td>< / t r >< t r >< td>Nueva Contraseñ ;a : < / td>< td>< inpu t type=" password " name=" updt " value=" " requ i red>< / td>< / t r >< / t ab l e >< inpu t type=" submit " name=" Ent ra r " value=" A c t u a l i z a r ">< / d i v >< / td>< td>< / td>< / t r >< / t ab l e >< / d i v >< / form>< / body>< / html>
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 78 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ACTUALIZAR USUARIO
ARCHIVO INDEX.PHP (RESULTADO)
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 79 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ACTUALIZAR USUARIO
ARCHIVO MUESTRADB.PHP (BODY)
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ACTUALIZAR USUARIO
RESULTADO ACTUALIZAR USUARIO
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 81 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ELIMINAR USUARIO
NDICE
1 BASE DE DATOS DE PRUEBA
2 SQL EMBEBIDO EN JAVAOracle SQL y JavaPostgreSQL y JavaSQL Server y JavaSQLite y Java
3 SQL EMBEBIDO EN CPostgreSQL y C
4 SQL EMBEBIDO EN PHP (POSTGRESQL)Configuracin previaConectar PHP y la base de datosEjemplo: Mostrar TablasEjemplo: Registrar UsuarioEjemplo: Validacin UsuarioEjemplo: Actualizar UsuarioEjemplo: Eliminar Usuario
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 82 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ELIMINAR USUARIO
ARCHIVO INDEX.PHP (BODY)
Iniciar Sesió ;n : < / d i v >< / h4>
< tab le >< t r >< td>Usuario : < / td>< td>
< s e l e c t name=" usuar io ">< / op t ion>
< / s e l e c t >< / td>< / t r >< t r >< td>Contraseñ ;a : < / td>< td>< inpu t type=" password " name=" cont ra " value=" " requ i red>< / td>< / t r >< / t ab l e >< inpu t type=" submit " name=" Ent ra r " value=" E l im ina r ">< / d i v >< / td>< td>< / td>< / t r >< / t ab l e >< / d i v >< / form>
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 83 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ELIMINAR USUARIO
ARCHIVO INDEX.PHP (RESULTADO)
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 84 / 86
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ELIMINAR USUARIO
ARCHIVO MUESTRADB.PHP (BODY)
-
SQL EMBEBIDO EN PHP (POSTGRESQL) EJEMPLO: ELIMINAR USUARIO
RESULTADO ELIMINAR USUARIO
LUIS EMILIO CABRERA CROT (UBB) BD1 MAY 2015 86 / 86
Base de Datos de PruebaSQL Embebido en JavaSQL Embebido en CSQL Embebido en PHP (postgreSQL)