Ejemplos de acceso a bases de datos con ASP, Perl y PHP
En este apartado podrá observar algunos ejemplos sencillos de páginas de acceso a bases de datos sobre cada plataforma (Windows/ Linux), programadas con distintos lenguajes y tecnologías.
Dependiendo de la base de datos que disponga el plan de hosting que haya contratado, la plataforma (Sistema Operativo) sobre la que se ubique su servicio web y el lenguaje de programación que utilice en sus páginas web, tendrá que conectarse al servidor de datos utilizando distinto código.
En esta sección tratamos de mostrar, a través de ejemplos, cómo puede programar el acceso a bases de datos utilizando los lenguajes de programación web más comunes.
Para ilustrar todos los ejemplos utilizaremos una base de datos muy sencilla que llamaremos DBPersonas, compuesta por una única tabla de nombre Personas. Esta tabla tendrá únicamente dos campos: ID y Nombre.
Para facilitarle el acceso a los ejemplos le mostramos a continuación una tabla organizada por tipo de base de datos y plataforma para que pueda acceder directamente al ejemplo que más le interese:
Ejemplos de conexión con bases de datos Access
Recuerde que sólo podrá conectar a bases de datos de Access si tiene contratado un Plan de Alojamiento bajo sistema operativo Windows.
Usando ASP (en VBScript) y ADO
Para acceder a una base de datos mediante DSN tendrá que crear dicho DSN para su Plan de Alojamiento.
En el ejemplo que sigue asumimos, para el acceso mediante DSN, que el mismo se llama dominio.com.DSNAccess
<% Option Explicit 'Se declaran las variables Dim Conexion Dim Cadena Dim Rutafisica Dim ADOPersonas Dim MiId Dim MiNombre 'Se crean dos objetos, una conexión y un recordset Set Conexion = CreateObject('ADODB.Connection') Set ADOPersonas = CreateObject('ADODB.Recordset') 'Se establece la cadena de conexión. 'Hay que elegir una de las dos opciones: '1)----Código para acceder mediante un DSN---- Cadena='DSN=dominio.com.DSNAccess' '2)----Código para acceder utilizando cadena de conexión---- 'Consulte la ruta física a la raíz de su dominio en el servidor. 'Los parámetros UID y PWD son opcionales. Rutafisica='unidad:rutadirectorios' Cadena='Driver={Microsoft Access Driver (*.mdb)}; DBQ=' & Rutafisica &'dataDBPersonas.mdb;UID=usuario;PWD=pwd;' 'Se abre la conexión Conexion.Open Cadena 'Se ejecuta la sentencia SQL ADOPersonas.Open 'Select Id, Nombre from Personas', Conexion %> <HTML> <HEAD> <TITLE>Resultado</TITLE> </HEAD> <BODY> <h2><center> Ejemplo de conexión a Access con ASP-VBScript </center></h2> <table width='30%' border='1' align='center'> <tr> <td><center><b>Id</b></center></td> <td><center><b>Nombre</b></center></td> </tr> <% 'Se recorre la tabla y se muestran los resultados While Not ADOPersonas.eof Set MiId=ADOPersonas('Id') Set MiNombre=ADOPersonas('Nombre') %> <tr> <td><%=MiId%></td> <td><%=MiNombre%></td> </tr> <% ADOPersonas.Movenext Wend 'Se cierran el Recordset y la conexión ADOPersonas.Close Conexion.Close %> </BODY> </HTML>
Usando PERL y ADO
Para acceder a una base de datos mediante DSN tendrá que crear dicho DSN para su Plan de Alojamiento.
En el ejemplo que sigue asumimos, para el acceso mediante DSN, que el mismo se llama dominio.com.DSNAccess
Tenga en cuenta que los archivos en PERL sobre Windows suelen tener la extensión .pl ó .cgi
Se puede acceder a la base de datos utilizando el método Execute sobre una conexión, o creando un objeto Recordset. Veamos un ejemplo de cada caso:
Ejemplo usando el método Execute:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a Access con script de Perl usando ADO </center></h2>'; print '<PRE>n'; #Se crea un objeto conexión my $MiConexion = Win32::OLE->new('ADODB.Connection'); #Se establece la cadena de conexión. #Hay que elegir una de las dos opciones: #1------Código para acceder mediante un DSN------ my $Cadena='DSN=dominio.com.DSNAccess'; #2------Código para acceder utilizando cadena de conexión------ #El campo DBQ será la ruta y nombre de nuestra base de datos #Los campos UID y PWD son el usuario y contraseña si existen #IMPORTANTE: $rutafisica contiene la ruta física en disco a la #raíz de su dominio en el servidor. Consulte este dato para acceder #por este método. my $rutafisica='unidad:\rutadirectorios'; my $Cadena='Driver={Microsoft Access Driver (*.mdb)}; DBQ=$rutafisica\data\DBPersonas.mdb;UID=;PWD=;'; #Se conecta con la base de datos $MiConexion->Open($Cadena); #Se ejecuta la consulta SQL my $RS = $MiConexion->Execute('SELECT * FROM Personas'); #Se recorre la tabla y se imprimen los datos while ( !$RS->EOF ) { my $Id = $RS->Fields('Id')->value; my $Nombre = $RS->Fields('Nombre')->value; print '$Idt$Nombren'; $RS->MoveNext; } #Para finalizar se cierra la conexión $MiConexion->Close; #Y escribimos las cabeceras de finalización print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Ejemplo usando un objeto Recordset:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a Access con script Perl usando ADO </center></h2>'; print '<PRE>n'; #Se crean un objeto conexión y un objeto Recordset my $MiConexion = Win32::OLE->new('ADODB.Connection'); my $ADOPersonas= Win32::OLE->new('ADODB.Recordset'); #Se establece la cadena de conexión. #Hay que elegir una de las dos opciones: #1------Código para acceder mediante un DSN------ my $Cadena='DSN=dominio.com.DSNAccess'; #2------Código para acceder utilizando cadena de conexión------ #El campo DBQ será la ruta y nombre de nuestra base de datos #Los campos UID y PWD son el usuario y contraseña si existen #IMPORTANTE: $rutafisica contiene la ruta física en disco a la #raíz de su dominio en el servidor. Consulte este dato para acceder #por este método. my $rutafisica='unidad:\rutadirectorios'; my $Cadena='Driver={Microsoft Access Driver (*.mdb)}; DBQ=$rutafisica\data\DBPersonas.mdb;UID=;PWD=;'; #Se abre la conexión con la base de datos $MiConexion->Open($Cadena); $ADOPersonas->open('select Id, Nombre from Personas',$MiConexion,3, 3); #Se recorre la tabla y se imprimen los datos while ( not $ADOPersonas->{EOF}) { my $Id = $ADOPersonas->{'Id'}->Value; my $Nombre = $ADOPersonas->{'Nombre'}->Value; print '$Idt$Nombren'; $ADOPersonas->{MoveNext}; } #Se cierran el Recordset y la conexión $ADOPersonas->Close; $MiConexion->Close; #Y escribimos las cabeceras de finalización print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Usando PERL y DBI
Para acceder a una base de datos mediante DSN tendrá que crear dicho DSN para su Plan de Alojamiento.
En el ejemplo que sigue asumimos, para el acceso mediante DSN, que el mismo se llama dominio.com.DSNAccess
Tenga en cuenta que los archivos en PERL sobre Windows deben tener la extensión .pl ó .cgi
use strict; use DBI; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a Access con script de Perl </center></h2>'; print '<PRE>'; #Se establece la cadena de conexión. #Hay que elegir una de las dos opciones: #1------Código para acceder mediante un DSN------ my $Cadena='dominio.com.DSNAccess'; #2------Código para acceder utilizando cadena de conexión------ #El campo DBQ será la ruta y nombre de nuestra base de datos #Los campos UID y PWD son el usuario y contraseña si existen #IMPORTANTE: $rutafisica contiene la ruta física en disco a la #raíz de su dominio en el servidor. Consulte este dato para acceder #por este método. my $rutafisica='unidad:\rutadirectorios'; my $Cadena='Driver={Microsoft Access Driver (*.mdb)}; DBQ=$rutafisica\data\DBPersonas.mdb;UID=;PWD=;'; #Se abre una conexión con la base de datos my $dbh=DBI->connect('dbi:ODBC:$Cadena'); #Se define la consulta my $SQL= 'SELECT Id, Nombre FROM Personas'; #Se prepara y ejecuta la sentencia. #Si se produce algún error el programa finaliza my $sth = $dbh->prepare($SQL) or die 'No puedo conectar a la base de datos'; $sth->execute; #Se recorre la tabla y se muestran los datos print 'IdtNombren'; while (my $ref = $sth->fetchrow_arrayref) { print '$ref->[0]t$ref->[1]n'; } #Se desconecta de la base de datos $sth->finish(); $dbh->disconnect(); #Y escribimos las cabeceras de finalización print '</PRE>'; print '</BODY>n'; print '</HTML>n';
Ejemplos de conexión con bases de datos SQL Server
Recuerde que sólo podrá conectar a bases de datos de SQL Server si tiene contratado un Plan de Alojamiento Web bajo sistema operativo Windows.
En este apartado podrá ver ejemplos de distintas formas de conectar con una base de datos de SQL Server para realizar una sencilla consulta de selección. Consulte la documentación de SQL Server y ADO para ejecutar sentencias más complejas, procedimientos almacenados, etc.
Usando ASP (en VBScript) y ADO
<% Option Explicit 'Se declaran las variables Dim Conexion Dim Cadena Dim ADOPersonas Dim MiId Dim MiNombre 'Se crean dos objetos, una conexión y un Recordset Set Conexion = CreateObject('ADODB.Connection') Set ADOPersonas = CreateObject('ADODB.Recordset') 'Se establece la cadena de conexión. 'Hay que elegir una de las dos opciones: '1)----Código para acceder mediante un DSN---- Cadena='DSN=dominio.com.DSNSQLServer;UID=usuario;PWD=password' '2)----Código para acceder utilizando cadena de conexión---- 'Establecemos la cadena de conexión. 'El campo server será el servidor de SQL Server. 'Database será el nombre de la base de datos. 'uid es el nombre de usuario. 'pwd es la contraseña. 'Puede consultar todos estos datos en su panel de control Cadena='driver={SQL Server}; server=servidor; database=DBPersonas; uid=usuario; pwd=password' 'Se abre la conexión Conexion.Open Cadena ADOPersonas.Open 'Select Id, nombre from Personas', Conexion %> <HTML> <HEAD> <TITLE>Resultado</TITLE> </HEAD> <BODY> <h2><center> Ejemplo de conexión a SQLServer con ASP-VBScript </center></h2> <table width='30%' border='1' align='center'> <tr> <td><center><b>Id</b></center></td> <td><center><b>Nombre</b></center></td> </tr> <% 'Se recorre la tabla y se muestran los resultados While Not ADOPersonas.eof Set MiId=ADOPersonas('Id') Set MiNombre=ADOPersonas('Nombre') %> <tr> <td><%=MiId%></td> <td><%=MiNombre%></td> </tr> <% ADOPersonas.Movenext Wend 'Se cierran el recordset y la conexión ADOPersonas.Close Conexion.Close %> </BODY> </HTML>
Usando PERL y ADO
Para acceder a una base de datos mediante DSN tendrá que crear dicho DSN para su Plan de Alojamiento.
En el ejemplo que sigue asumimos, para el caso de acceso por DSN, que el mismo se llama dominio.com.DSNSQLServer.
Tenga en cuenta que los archivos en PERL sobre Windows suelen tener la extensión .pl ó .cgi
Ejemplo con sentencia Execute:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a SQLServer con script Perl usando ADO </center></h2>'; print '<PRE>n'; #Se abre una conexión con la base de datos my $MiConexion = Win32::OLE->new('ADODB.Connection'); #Se establece la cadena de conexión. #Hay que elegir una de las dos opciones: #1------Código para acceder mediante un DSN------ my $Cadena='DSN=dominio.com.DSNSQLServer;UID=usuario;PWD=password'; #2------Código para acceder utilizando cadena de conexión------ #Consulte los datos de su base de datos SQL Server en el panel de control my ($servidor, $bd, $usuario, $passw)= 'servidor', 'DBPersonas', 'usuario', 'password'); my $Cadena='driver={SQL Server}; server=$servidor; database=$bd; uid=$usuario; pwd=$passw'; #Se conecta con la base de datos $MiConexion->Open($Cadena); #Se ejecuta la consulta SQL my $RS = $MiConexion->Execute('SELECT * FROM Personas'); #Se recorre la tabla y se imprimen los datos while ( !$RS->EOF ) { my $Id = $RS->Fields('Id')->value; my $Nombre = $RS->Fields('Nombre')->value; print '$Idt$Nombren'; $RS->MoveNext; } #Se cierra la conexión $MiConexion->Close; #Se imprimen las cabeceras de finalización print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Ejemplo con el objeto Recordset:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a SQLServer con script Perl usando ADO </center></h2>'; print '<PRE>n'; #Se crean los objetos conexión y Recordset my $MiConexion = Win32::OLE->new('ADODB.Connection'); my $ADOPersonas= Win32::OLE->new('ADODB.Recordset'); #Se establece la cadena de conexión. #Hay que elegir una de las dos opciones: #1------Código para acceder mediante un DSN------ my $Cadena='DSN=dominio.com.DSNSQLServer;UID=usuario;PWD=password'; #2------Código para acceder utilizando cadena de conexión------ #Consulte los datos de su base de datos SQL Server en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $Cadena='driver={SQL Server}; server=$servidor; database=$bd; uid=$usuario; pwd=$passw'; #Se abre la conexión con la base de datos $MiConexion->Open($Cadena); $ADOPersonas->open('select Id, Nombre from Personas',$MiConexion,3, 3); #Se recorre la tabla y se imprimen los datos while ( not $ADOPersonas->{EOF}) { my $Id = $ADOPersonas->{'Id'}->Value; my $Nombre = $ADOPersonas->{'Nombre'}->Value; print '$Idt$Nombren'; $ADOPersonas->{MoveNext}; } #Se cierran el Recordset y la conexión $ADOPersonas->Close; $MiConexion->Close; #Se imprimen las cabeceras de finalización print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Usando PERL y DBI
Para acceder a una base de datos mediante DSN tendrá que crear dicho DSN para su Plan de Alojamiento.
En el ejemplo que sigue asumimos, para el caso de acceso con DSN, que el mismo se llama dominio.com.DSNSQLServer.
Tenga en cuenta que los archivos en PERL sobre Windows suelen tener la extensión .pl ó .cgi
use strict; use DBI; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a SQLServer con script de Perl </center></h2>'; print '<PRE>'; #Se establece la cadena de conexión. #Hay que elegir una de las dos opciones: #1------Código para acceder mediante un DSN------ my $Cadena='DSN=dominio.com.DSNSQLServer;UID=usuario;PWD=password'; #2------Código para acceder utilizando cadena de conexión------ #Consulte los datos de la base de datos SQL Server en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'pass'); my $Cadena='driver={SQL Server}; server=$servidor; database=$bd; uid=$usuario; pwd=$passw'; #Se abre una conexión con la base de datos. my $dbh=DBI->connect('dbi:ODBC:$Cadena'); #Se define la consulta my $SQL= 'SELECT Id, Nombre FROM Personas'; #Se prepara y ejecuta la sentencia. #Si se produce algún error el programa finaliza my $sth = $dbh->prepare($SQL) or die 'No puedo conectar a la base de datos'; $sth->execute; #Se recorre la tabla y se muestran los datos print 'IdtNombren'; while (my $ref = $sth->fetchrow_arrayref) { print '$ref->[0]t$ref->[1]n'; } #Se desconecta de la base de datos $sth->finish(); $dbh->disconnect(); #Se imprimen las cabeceras de fin print '</PRE>'; print '</BODY>n'; print '</HTML>n';
Ejemplos de conexión con bases de datos MySQL
Podrá conectar con bases de datos MySQL tanto si tiene contratado un Plan de Alojamiento Web bajo sistema operativo Windows o Linux.
Utilizando ASP (en VBScript) y ADO
<% Option Explicit 'Se declaran las variables Dim Conexion Dim Cadena Dim ADOPersonas Dim MiId Dim MiNombre 'Se crean los objetos conexión y Recordset Set Conexion = CreateObject('ADODB.Connection') Set ADOPersonas = CreateObject('ADODB.Recordset') 'Se establece la cadena de conexión 'El campo server será el servidor de MySQL 'Database será el nombre de la base de datos 'uid es el nombre de usuario 'pwd es la contraseña 'Puede consultar todos estos datos en su panel de control Cadena='Driver={mySQL}; Server=servidor; Database=DBPersonas; Uid=usuario; Pwd=password' 'Se abre la conexión Conexion.Open Cadena 'IMPORTANTE: MySQL es sensible a mayúsculas/minúsculas en las consultas SQL 'Esto quiere decir que las tablas 'Personas' y 'personas' son distintas. ADOPersonas.Open 'Select Id, Nombre from Personas', Conexion %> <HTML> <HEAD> <TITLE>Resultado</TITLE> </HEAD> <BODY> <h2><center> Ejemplo de conexión a MySQL con ASP-VBScript </center></h2> <table width='30%' border='1' align='center'> <tr> <td><center><b>Id</b></center></td> <td><center><b>Nombre</b></center></td> </tr> <% ' Se recorre la tabla y se muestran los resultados While Not ADOPersonas.eof Set MiId=ADOPersonas('Id') Set MiNombre=ADOPersonas('Nombre') %> <tr> <td><%=MiId%></td> <td><%=MiNombre%></td> </tr> <% ADOPersonas.Movenext Wend 'Se cierran los objetos creados ADOPersonas.Close Conexion.Close %> </BODY> </HTML> También puedes acceder a la base de datos MySQL desde el Panel de Control.
Utilizando PERL y ADO
Ejemplo usando el método Execute:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a MySQL con script de Perl usando ADO </center></h2>'; print '<PRE>n'; #Se crea el objeto conexión my $MiConexion = Win32::OLE->new('ADODB.Connection'); #Se establece la cadena de conexión #Consulte los datos de la conexión en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $Cadena='driver={MySQL}; server=$servidor; database=$bd; uid=$usuario; pwd=$passw'; #Se conecta con la base de datos $MiConexion->Open($Cadena); #Se ejecuta la consulta SQL #IMPORTANTE: MySQL es sensible a mayúsculas/minúsculas en las consultas SQL. #Esto quiere decir que las tablas 'Personas' y 'personas' son distintas. my $RS = $MiConexion->Execute('SELECT * FROM Personas'); #Se recorre la tabla y se imprimen los datos while ( !$RS->EOF ) { my $Id = $RS->Fields('Id')->value; my $Nombre = $RS->Fields('Nombre')->value; print '$Idt$Nombren'; $RS->MoveNext; } #Se cierra la conexión $MiConexion->Close; #Se imprimen las cabeceras de fin print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Ejemplo usando el objeto Recordset:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a MySQL con script de Perl usando ADO </center></h2>'; print '<PRE>n'; #Se crean los objetos conexión y Recordset my $MiConexion = Win32::OLE->new('ADODB.Connection'); my $ADOPersonas= Win32::OLE->new('ADODB.Recordset'); #Se establece la cadena de conexión. #Consulte los datos de la conexión en el panel de control. my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $Cadena='driver={MySQL}; server=$servidor; database=$bd; uid=$usuario; pwd=$passw'; #Se abre la conexión con la base de datos $MiConexion->Open($Cadena); #Se realiza la consulta SQL #IMPORTANTE: MySQL es sensible a mayúsculas/minúsculas en las consultas SQL. #Esto quiere decir que las tablas 'Personas' y 'personas' son distintas. $ADOPersonas->open('select Id, Nombre from Personas',$MiConexion,3, 3); #Se recorre la tabla y se imprimen los datos while ( not $ADOPersonas->{EOF}) { my $Id = $ADOPersonas->{'Id'}->Value; my $Nombre = $ADOPersonas->{'Nombre'}->Value; print '$Idt$Nombren'; $ADOPersonas->{MoveNext}; } #Se cierran los objetos creados $ADOPersonas->Close; $MiConexion->Close; #Se imprimen las cabeceras de fin print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Utilizando PERL y DBI
use strict; use DBI; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a MySQL con script de Perl usando DBI </center></h2>'; print '<PRE>'; #Se establece la cadena de conexión #Consulte los datos de la conexión en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $cadena='DBI:mysql:database=$bd;host=$servidor'; #Se conecta a la base de datos my $dbh = DBI->connect($cadena,$usuario,$passw); #Se realiza la consulta SQL #IMPORTANTE: MySQL es sensible a mayúsculas/minúsculas en las consultas SQL. #Esto quiere decir que las tablas 'Personas' y 'personas' son distintas. my $SQL= 'SELECT Id, Nombre FROM Personas'; my $sth = $dbh->prepare($SQL) or die 'No puedo conectar a la base de datos'; $sth->execute; #Se recorre la tabla y se muestran los datos print 'IdtNombren'; while (my $ref = $sth->fetchrow_arrayref) { print '$ref->[0]t$ref->[1]n'; } #Se desconecta de la base de datos $sth->finish(); $dbh->disconnect(); #Se escriben las cabeceras de fin print '</PRE>'; print '</BODY>n'; print '</HTML>n';
Utilizando PERL y DBI
#!/usr/bin/perl use DBI(); #Se imprimen las cabeceras print 'content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a MySQL con script de Perl </center></h2>'; print '<PRE>'; #Se establece la cadena de conexión. #Consulte los datos de la conexión en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $cadena='DBI:mysql:dbname=$bd; host=$servidor'; #Se realiza la conexión my $dbh = DBI->connect($cadena,$usuario,$passw); #Se ejecuta la consulta SQL #IMPORTANTE: MySQL es sensible a mayúsculas/minúsculas en las consultas SQL. #Esto quiere decir que las tablas 'Personas' y 'personas' son distintas. my $SQL= 'SELECT Id, Nombre FROM Personas'; my $sth = $dbh->prepare($SQL) or die 'No puedo conectar a la base de datos'; $sth->execute; #Se recorre la tabla y se muestran los datos print 'IdtNombren'; while (my $ref = $sth->fetchrow_arrayref) { print '$ref->[0]t$ref->[1]n'; } #Se desconecta de la base de datos $sth->finish(); $dbh->disconnect(); #Se escriben las cabeceras de fin print '</PRE>'; print '</BODY>n'; print '</HTML>n';
Utilizando PHP
<html> <body> <?php #Se efectúa la conexión usando 3 parámetros #(servidor, usuario y contraseña) #Consulte estos datos en el panel de control $db = mysql_connect('servidor', 'usuario', 'password'); #Se selecciona la base de datos que se va a utilizar mysql_select_db('DBPersonas',$db); #Se ejecuta una consulta SQL $result = mysql_query('SELECT * FROM Personas',$db); echo '<table border=1>n'; echo '<tr><td>Id</td><td>Nombre</td></tr>n'; #Se recorre el resultado mostrando la información while ($myrow = mysql_fetch_row($result)) { printf('<tr><td>%s</td><td>%s</td></tr>n',$myrow[0],$myrow[1]); } echo '</table>n'; ?> </body> </html>
Ejemplos de acceso a bases de datos PostgreSQL
Utilizando ASP (en VBScript) y ADO
<% Option Explicit 'Se declaran las variables Dim Conexion Dim Cadena Dim ADOPersonas Dim MiId Dim MiNombre 'Se crean los objetos conexión y Recordset Set Conexion = CreateObject('ADODB.Connection') Set ADOPersonas = CreateObject('ADODB.Recordset') 'Se establece la cadena de conexión 'El campo server será el servidor de PostgreSQL 'Database será el nombre de la base de datos 'uid es el nombre de usuario 'pwd es la contraseña 'Puede consultar todos estos datos en su panel de control Cadena='Driver={PostgreSQL}; Server=servidor; Database=DBPersonas; Uid=usuario; Pwd=password' 'Se abre la conexión Conexion.Open Cadena 'Se realiza la consulta SQL ADOPersonas.Open 'Select Id, Nombre from Personas', Conexion %> <HTML> <HEAD> <TITLE>Resultado</TITLE> </HEAD> <BODY> <h2><center> Ejemplo de conexión a PostgreSQL con ASP-VBScript </center></h2> <table width='30%' border='1' align='center'> <tr> <td><center><b>Id</b></center></td> <td><center><b>Nombre</b></center></td> </tr> <% 'Se recorre la tabla y se muestran los resultados While Not ADOPersonas.eof Set MiId=ADOPersonas('Id') Set MiNombre=ADOPersonas('Nombre') %> <tr> <td><%=MiId%></td> <td><%=MiNombre%></td> </tr> <% ADOPersonas.Movenext Wend 'Se cierran los objetos creados ADOPersonas.Close Conexion.Close %> </BODY> </HTML>
Utilizando PERL y ADO
Ejemplo usando el método Execute:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a PostgreSQL con script de Perl usando ADO </center></h2>'; print '<PRE>n'; #Se crea el objeto conexión my $MiConexion = Win32::OLE->new('ADODB.Connection'); #Se establece la cadena de conexión #Consulte los datos de la conexión en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $Cadena='driver={PostgreSQL}; server=$servidor; database=$bd; uid=$usuario; pwd=$passw'; #Se conecta con la base de datos $MiConexion->Open($Cadena); #Se ejecuta la consulta SQL my $RS = $MiConexion->Execute('SELECT * FROM Personas'); #Se recorre la tabla y se imprimen los datos while ( !$RS->EOF ) { my $Id = $RS->Fields('Id')->value; my $Nombre = $RS->Fields('Nombre')->value; print '$Idt$Nombren'; $RS->MoveNext; } #Se cierra la conexión $MiConexion->Close; #Se imprimen las cabeceras de fin print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Ejemplo usando el objeto Recordset:
use strict; use Win32::OLE; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a PostgreSQL con script de Perl usando ADO </center></h2>'; print '<PRE>n'; #Se crean los objetos conexión y Recordset my $MiConexion = Win32::OLE->new('ADODB.Connection'); my $ADOPersonas= Win32::OLE->new('ADODB.Recordset'); #Se establece la cadena de conexión. #Consulte los datos de la conexión en el panel de control. my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $Cadena='driver={PostgreSQL}; server=$servidor; database=$bd; uid=$usuario; pwd=$passw'; #Se abre la conexión con la base de datos $MiConexion->Open($Cadena); #Se realiza la consulta SQL $ADOPersonas->open('select Id, Nombre from Personas',$MiConexion,3, 3); #Se recorre la tabla y se imprimen los datos while ( not $ADOPersonas->{EOF}) { my $Id = $ADOPersonas->{'Id'}->Value; my $Nombre = $ADOPersonas->{'Nombre'}->Value; print '$Idt$Nombren'; $ADOPersonas->{MoveNext}; } #Se cierran los objetos creados $ADOPersonas->Close; $MiConexion->Close; #Se imprimen las cabeceras de fin print '</PRE>n'; print '</BODY>n'; print '</HTML>n';
Utilizando PERL y DBI
use strict; use DBI; #Se imprimen las cabeceras print 'HTTP/1.0 200 OKn'; print 'Content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a PostgreSQL con script de Perl usando DBI </center></h2>'; print '<PRE>'; #Se establece la cadena de conexión #Consulte los datos de la conexión en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $cadena='DBI:PgPP:database=$bd;host=$servidor'; #Se conecta a la base de datos my $dbh = DBI->connect($cadena, $usuario, $passw); #Se realiza la consulta SQL my $SQL= 'SELECT Id, Nombre FROM Personas'; my $sth = $dbh->prepare($SQL) or die 'No puedo conectar a la base de datos'; $sth->execute; #Se recorre la tabla y se muestran los datos print 'IdtNombren'; while (my $ref = $sth->fetchrow_arrayref) { print '$ref->[0]t$ref->[1]n'; } #Se desconecta de la base de datos $sth->finish(); $dbh->disconnect(); #Se escriben las cabeceras de fin print '</PRE>'; print '</BODY>n'; print '</HTML>n';
Utilizando PERL y DBI
#!/usr/bin/perl use DBI(); #Se imprimen las cabeceras print 'content-type: text/htmlnn'; print '<HTML>n'; print '<HEAD>n'; print '<TITLE>Resultado</TITLE>n'; print '</HEAD>n'; print '<BODY>n'; print '<h2><center> Ejemplo de conexión a PostgreSQL con script de Perl </center></h2>'; print '<PRE>'; #Se establece la cadena de conexión. #Consulte los datos de la conexión en el panel de control my ($servidor, $bd, $usuario, $passw) = ('servidor', 'DBPersonas', 'usuario', 'password'); my $cadena='DBI:Pg:dbname=$bd; host=$servidor'; #Se realiza la conexión my $dbh = DBI->connect($cadena, $usuario, $passw); #Se ejecuta la consulta SQL my $SQL= 'SELECT Id, Nombre FROM Personas'; my $sth = $dbh->prepare($SQL) or die 'No puedo conectar a la base de datos'; $sth->execute; #Se recorre la tabla y se muestran los datos print 'IdtNombren'; while (my $ref = $sth->fetchrow_arrayref) { print '$ref->[0]t$ref->[1]n'; } #Se desconecta de la base de datos $sth->finish(); $dbh->disconnect(); #Se escriben las cabeceras de fin print '</PRE>'; print '</BODY>n'; print '</HTML>n';
Utilizando PHP
<html> <body> <?php #Se establece la cadena de conexión #Consulte los datos de acceso de su base de datos en su panel de control $cadena = 'host=servidor port=5432 dbname=DBPersonas user=usuario password=contraseña'; #Se efectua la conexión $connection = pg_pconnect ($cadena); #Se ejecuta la consulta $result=pg_exec('SELECT * FROM Personas'); #Mostramos los resultados print 'Id , Nombren'; $rows = pg_numrows($result); for ($i=0; $i < $rows; $i++){ list($foo,$bar) = pg_fetch_row($result,$i); print '($foo , $bar)n'; } #Se cierra la conexión pg_close($connection); ?> </body> </html>