Ejemplos de acceso a bases de datos con ASP, Perl y PHP

22min

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:

Índice

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 Utilizando ASP

<%
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 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 Utilizando perl

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 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 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 Utilizando php

<%
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 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 utlizando 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 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 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>
Fernán García de Zúñiga

Productos relacionados: