0% encontró este documento útil (0 votos)
7 vistas

PHP Mysql

Cargado por

agustinflcj
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas

PHP Mysql

Cargado por

agustinflcj
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 21

 FUOC • XP04/90791/00021 Software libre

• Los nombres de parámetro se separan de los valores con el ca-


rácter =.

• Se sustituyen los caracteres especiales siguiendo la siguiente ta-


bla:

– El carácter ‘ ‘ (espacio en blanco) se convierte en +.

– Los caracteres no alfanuméricos y los caracteres especiales,


como los usados para codificación (+, etc.), se representan de
la forma %HH, donde HH representa el valor hexadecimal del
código ASCII del carácter.

– Los saltos de línea se representan como %0D %0A.

5.1.4. Redirecciones

Podemos reenviar el cliente a una página diferente desde un progra-


ma CGI. Para ello sólo es necesario no devolver el código HTML es-
tándar precedido del Content-type, sino que deberíamos
devolver un campo de código de estado seguido de la localización
de la nueva página como en el ejemplo:

#include <stdio.h>

int main()
{
printf(“Status: 302\r\n”);
printf(“Location: nueva.html\r\n”);
exit(1);
}
ANOTACIONES

5.2. PHP

PHP, cuyas siglas responden a un acrónimo recursivo (PHP: hypertext


preprocessor), es un lenguaje sencillo, de sintaxis cómoda y similar a
la de otros lenguajes como Perl, C y C++. Es rápido, interpretado,
orientado a objetos y multiplataforma. Para él se encuentra disponi-
ble una multitud de librerías. PHP es un lenguaje ideal tanto para

186
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

aprender a desarrollar aplicaciones web como para desarrollar apli-


caciones web complejas. PHP añade a todo eso la ventaja de que el
intérprete de PHP, los diversos módulos y gran cantidad de librerías
desarrolladas para PHP son de código libre, con lo que el programa-
dor de PHP dispone de un impresionante arsenal de herramientas li-
bres para desarrollar aplicaciones.

PHP suele ser utilizado conjuntamente con Perl, Apache, MySQL o


PostgreSQL en sistemas Linux, formando una combinación barata
(todos los componentes son de código libre), potente y versátil. Tal
ha sido la expansión de esta combinación que incluso ha merecido
conocerse con un nombre propio LAMP (formado por las iniciales de
los diversos productos).

Apache, así como algunos otros servidores web, Roxen entre ellos,
puede incorporar PHP como un módulo propio del servidor, lo cual
permite que las aplicaciones escritas en PHP resulten mucho más rá-
pidas que las aplicaciones CGI habituales.

5.2.1. Cómo funciona PHP

Si solicitamos a nuestro servidor una página PHP, éste envía dicha


página al intérprete de PHP que la ejecuta (de hecho, no se trata más
que de un programa) y devuelve el resultado (generalmente HTML)
al servidor web, el cual, a su vez, se lo enviará al cliente.

Imaginemos que tenemos una página PHP con el siguiente contenido:

<?php echo “<h1>¡Hola mundo!</h1>“;?>

Si tenemos este código en un fichero con extensión .php el servidor


ANOTACIONES

enviará la página al intérprete de PHP, el cual ejecuta la página y ob-


tiene como resultado:

<h1>¡Hola mundo!</h1>

El servidor se lo enviará al navegador cliente que ha solicitado la pá-


gina. El mensaje aparecerá en la pantalla de este último. Veremos
que PHP permite mezclar en la misma página HTML y PHP, lo que

187

 FUOC • XP04/90791/00021 Software libre

facilita notablemente el trabajo con éste, pero por otro lado supone
un peligro, ya que complica el trabajo en caso de que diseñadores
de web y programadores trabajen conjuntamente en las páginas.

Disponemos, en los sistemas en los que esté instalado PHP, de un fi-


chero de configuración global de PHP llamado php.ini que nos
permitirá configurar algunos parámetros globales. Conviene revisar
dicho fichero, pues aunque los valores por defecto suelen ser correc-
tos, puede interesarnos realizar algunos cambios.

5.2.2. Sintaxis de PHP

Para empezar a comprender la sintaxis del lenguaje, analizaremos


un programa mínimo de PHP:

<?php
$MYVAR = “1234”;
$myvar = “4321”;
echo $MYVAR. “<br>\n”;
echo $myvar.”<br>\n”;
?>

La ejecución de este programa (su visualización desde un navega-


dor), dará como resultado:

1234<br>
4321<br>

El primer punto que debemos destacar es que los bloques de código


de PHP están delimitados en HTML con <?php y ?>. Podemos, por
tanto, escribir una página HTML e incluir en ella diversos bloques de
instrucciones PHP:
ANOTACIONES

<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
<h1>Cabecera H1</h1>
<?php echo “Hola” ?>
<h1>Cabecera H1 segunda</h1>

188
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

<?php
$MYVAR = 1234;
$myvar = 4321;
echo $MYVAR. “<br>“;
echo $myvar.”<br>“;
// Este programa presenta en pantalla unos números
?>
</BODY>
</HTML>

El siguiente punto que conviene destacar es que los nombres de va-


riables se distinguen en que siempre deben empezar con $, y que
igual que en C/C++, son case sensitive, es decir, diferencian mayús-
culas y minúsculas. Fijaos también en que para concatenar texto (las
variables y “<br>“) utilizamos el carácter punto “.” y además, en
que todas las sentencias terminan con “;”.

Asimismo conviene observar que las variables, a pesar de ser numé-


ricas, se pueden concatenar con un texto (“<br>“). En este caso el
intérprete convierte el valor numérico de la variable en texto para po-
der realizar la concatenación.

También podemos observar que hay un comentario dentro del códi-


go. Este comentario no afectará en modo alguno al programa ni
será enviado al navegador del cliente (de hecho, el navegador clien-
te nunca recibirá código PHP). Para introducir comentarios en nues-
tro código, disponemos de dos opciones:

// Comentario de una sola línea

/* Esto es un comentario de varias líneas.


Para ello usamos este otro marcador
de inicio y final de comentario */
ANOTACIONES

5.2.3. Variables

PHP no precisa que declaremos a priori la variable que vamos a usar


ni el tipo de ésta. PHP declarará la variable y le asignará el tipo de
datos correcto en el momento en que la usemos por primera vez:

<?php $cadena = “Hola Mundo”;


$numero = 100;
$decimal = 8.5;
?>

189

 FUOC • XP04/90791/00021 Software libre

Como podemos observar, las tres variables fueron definidas en el


momento de asignarles valor y no tuvimos que definir tipos.

En PHP las variables pueden tener, básicamente, dos ámbitos: uno


global, en el que serán accesibles desde todo el código y otro local,
en el que sólo serán accesibles desde la función en la que las crea-
mos. Para asignar a una variable un ámbito global bastará con de-
clararla (en este caso, sí que hace falta una declaración de variable)
y usar la palabra reservada global en la declaración:

<?php
global $test;
?>

Las variables que no califiquemos como globales, pero que sean de-
finidas fuera de cualquier función, tendrán como ámbito el global.

Bastará con definir una variable dentro de una función. En ese caso,
su ámbito quedará restringido a la función donde la declaremos.

<?php
global $variable; // Variable global
$a=1; // Variable global implícita
function suma()
{
$b=1; // b es una variable local
$res=$a+$b; // res es una variable local
}
?>

Podemos ver que tanto a como variable son variables globales,


mientras que b y res son variables locales.
ANOTACIONES

Además, disponemos en PHP de variables de vectores o arrays . Éstas


son variables que pueden contener listas de elementos, a los que ac-
cederemos por medio de un índice.

<?php
$mares = array(); //con array() declaramos un vector
$mares[0]= “Mediterráneo”;
$mares[1] = “Aral”;
$mares[2] = “Muerto”;
?>

190
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

Como podemos ver, hemos declarado la variable mares con una


llamada a array(). Esto indica a PHP que dicha variable es un vec-
tor de elementos.

Para acceder a los elementos individuales del vector, debemos utili-


zar el nombre del vector e indicar la posición del elemento al que
queremos acceder entre corchetes. En PHP los vectores empiezan a
numerarse en 0.

Además de vectores con índices numéricos, PHP soporta vectores cu-


yos índices sean cadenas de texto:

<?php
$montañas = array(); //con array() declaramos un vector
$montañas[“Everest”]= “Himalaya”;
$montañas[“Fitz Roy”] = “Andes”;
$montañas[“Montblanc”] = “Alpes”;

echo $montañas[“Everest”]; // Imprimirá Himalaya


?>

5.2.4. Operadores

Los operadores son símbolos que se utilizan para realizar tanto ope-
raciones matemáticas como comparaciones u operaciones lógicas.

Los más habituales en PHP son:

• Operadores matemáticos:

a) + Suma varios números: 5 + 4 = 9.


ANOTACIONES

b) − Resta varios números: 5 - 4 = 1.

c) * Realiza una multiplicación: 3 * 3 = 9.

d) / Realiza una división: 10/2 = 5.

e) % Devuelve el residuo de una división: 10 % 3 = 1.

f) ++ Incrementa en 1: $v++ (Incrementa $v en 1).

g) −− Decrementa en 1: $v-- (Decrementa $v en 1).

191

 FUOC • XP04/90791/00021 Software libre

• Operadores de comparación:

a) == Evalúa a cierto si la condición de igualdad se cumple:


2 == 2 (Verdadero).

b) != Evalúa a cierto si la condición de igualdad no se cumple


2 != 2 (Falso).

c) < Evalúa a cierto si un número es menor que el otro


2 < 5(Verdadero).

d) > Evalúa a cierto si un número es mayor que el otro


6 > 4 (Verdadero).

e) <=Evalúa a cierto si un número es menor o igual que otro


2 <= 5 (Verdadero).

f) >=Evalúa a cierto si un número es mayor o igual que otro


6 >= 4 (Verdadero).

• Operadores lógicos:

a) && Evalúa a cierto si los dos operadores son ciertos.

b) || Evalúa a cierto si alguno de los operadores es cierto.

c) And Evalúa a cierto si los operadores son ciertos.

d) Or Evalúa a cierto si alguno de los operadores es cierto.

e) Xor Evalúa a cierto si o un operador es cierto o lo es el otro.

f) ! Invierte el valor de verdad del operador.

El siguiente ejemplo nos mostrará los operadores matemáticos más


comunes:
ANOTACIONES

<?php
$a = 5;
$b = 10;
$c = ($a + $b); //$c vale 15
$d = ($b - $a); //$d vale 5
$e = ($a * $b); //$e vale 50
$f = ($b / $a); //$f vale 2
$g = ($b % $a); //$g vale 0
?>

192
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

5.2.5. Estructuras de control

Las estructuras de control de PHP nos permiten controlar el flujo de


la operación de nuestro programa, controlando en todo momento
qué porciones de códigos se ejecutan en función de determinadas
condiciones.

Condicionales

Los condicionales son estructuras que permiten llevar a cabo deter-


minadas operaciones sólo en caso de cumplirse una condición. Sue-
len llamarse también bifurcaciones, ya que permiten dividir el flujo
de ejecución del programa en función del valor de verdad de una
sentencia o condición.

Disponemos en PHP de dos condicionales principales, el condicional


if/else y el condicional switch.

El condicional if nos permite escoger entre dos bloques de código


en función del cumplimiento o no de una condición.

<?php
$a = 0;
$b = 1;
if($a == $b)
{
echo “Pues resulta que 0 es igual a 1”;
}
else
{
echo “Todo sigue igual. 0 no es igual a 1”;
}
ANOTACIONES

?>

Si seguimos el flujo de ejecución de este programa, veremos que ini-


cialmente creamos dos variables a y b, a las que asignamos dos
valores numéricos diferentes. Acto seguido llegamos a la sentencia
condicional if. Ésta verifica la veracidad o cumplimiento de la con-
dición especificada. En este caso tenemos un operador == de igual-
dad, el cual devuelve que la comparación es falsa; por tanto, la
sentencia if no ejecuta el primer bloque de código, el que habría

193

 FUOC • XP04/90791/00021 Software libre

ejecutado en caso de cumplirse la condición, sino que ejecuta el se-


gundo, el precedido por else.

Podemos, pues, definir la estructura de if/else como:

if(condición)
{
código que se ejecutará si la condición es cierta
}
else
{
código que se ejecutará si la condición es falsa
}

Podemos comprobar más de una condición encadenando diversos


if/else:

if(condición1)
if(condición2)
{
código que se ejecutará si la condición2 es cierta
y la condición 1 es cierta
}
else
{
código que se ejecutará si la condición2 es falsa
y la condición 1 es cierta
}
else
{
código que se ejecutará si la condición1 es falsa
}

Un caso extendido del encadenamiento de if/else es el corres-


pondiente a aquellos supuestos en los que debemos ejecutar có-
digo diferente en función del valor de una variable. A pesar de
ANOTACIONES

que podemos realizar un encadenamiento de if/else compro-


bando el valor de dicha variable, si debemos comprobar diversos
valores el código resulta engorroso. Por ello PHP proporciona una
construcción condicional más adecuada para ello denominada
switch.

<?php
$a=1;
switch($a)

194
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

{
case 1:
case 2: echo “A es 1 o 2”; break;
case 3: echo “A es 3”; break;
case 4: echo “A es 4”; break;
case 5: echo “A es 5”; break;
case 6: echo “A es 6”; break;
default: echo “A es otro valor”;
}

La ejecución de switch es un poco compleja; de hecho, es muy pa-


recida a la de C. La sentencia switch se ejecuta línea a línea. Ini-
cialmente no se ejecuta ningún código de ninguna línea. Cuando se
encuentra un case con un valor que coincide con el de la variable
del switch PHP empieza a ejecutar las sentencias. Éstas continúan
siendo ejecutadas hasta el final de switch o hasta que se encuentre
un break. Por eso en el ejemplo si la variable vale 1 o si la variable
vale 2, se ejecuta el mismo bloque de código.

Disponemos, además, de un valor especial default que siempre


coincide con el valor de la variable.

Bucles

La otra estructura de control importante es la de los bucles. Los bu-


cles nos permiten ejecutar repetidamente un bloque de código en
función de una condición.

Tenemos tres bucles principales en PHP: for, while y foreach.

• El bucle while

El bucle while es el más simple de los tres, pero aún así probable-
mente sea el bucle más utilizado. El bucle se ejecuta mientras la con-
ANOTACIONES

dición que le hemos pasado sea cierta:

<?php
$a = 1;
while($a < 4)
{
echo “a=$a<br>“;
$a++;
}
?>

195

 FUOC • XP04/90791/00021 Software libre

En este caso, el bucle se ejecutará cuatro veces. Cada vez que se eje-
cute, incrementaremos el valor de a e imprimiremos un mensaje.
Cada vez que se vuelve a ejecutar el código, while comprueba la
condición y, en caso de cumplirse, vuelve a ejecutar el código. La
cuarta vez que se ejecute, como a valdrá cuatro, no se cumplirá la
condición especificada y el bucle no volverá a ejecutarse.

• El bucle for

Para bucles del tipo anterior, donde la condición de continuación es


sobre una variable que aumenta o disminuye con cada iteración, dis-
ponemos de un tipo de bucle más apropiado: for.

El código anterior, usando for quedaría de la forma:

<?php
for($a=1;$a < 4; $a++)
{
echo “a=$a<br>“;
}
?>

Como podemos ver, en el caso del bucle for en la misma sentencia


declaramos la variable sobre la que iteraremos, la condición de fina-
lización y la de incremento o continuación.

• foreach

Para aquellos casos en los que queremos que nuestro bucle haga un
recorrido sobre los elementos de un vector disponemos de una sen-
tencia que nos simplifica este hecho: foreach.
ANOTACIONES

<?php

$a = array (1, 2, 3, 17);

foreach ($a as $v
{
print “Valor: $v.\n”;
}
?>

196
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

Como podemos ver, en su forma más simple, foreach asigna a


una variable v uno a uno todos los valores de un vector a.

5.2.6. Funciones

Otro punto clave de PHP son las funciones. Las funciones en PHP
pueden recibir o no, parámetros y siempre pueden devolver un valor.
Las funciones sirven para dar mayor modularidad al código, evitan-
do así la repetición de código, permitiendo el aprovechamiento de
código entre proyectos, etc.

Un esquema de función es el siguiente:

<?php
function ejemp ($arg_1, $arg_2, ..., $arg_n)
{
// Código de la función
return $retorno;
}
?>

Podemos llamar a las funciones desde el código principal o desde


otras funciones:

<?php
function suma ($a1, $a2)
{
$retorno=$a1+$a2;
return $retorno;
}

function sumatorio ($b1, $b2, $b3)


ANOTACIONES

{
for($i=$b1;$i<$b2;$i++)
{
$res=suma($res,$b3);
}
return $res;
}
echo sumatorio(1,3,2);
?>

197

 FUOC • XP04/90791/00021 Software libre

El resultado de ejecutar dicho programa será que imprimirá un nú-


mero seis.

Las funciones en PHP reciben habitualmente los parámetros por valor,


es decir, la variable que se pasa como parámetro en el código que lla-
ma no sufre modificaciones si el parámetro de la función es modifica-
do. Podemos, no obstante, pasar parámetros por referencia (de forma
similar a los punteros de otros lenguajes de programación):

<?php
function modifi ($&a1, $a2)
{
$a1=0;
$a2=0;
}
$b1=1;
$b2=1;
modifi($b1,$b2);
echo $b1.” “.$b2;
?>

En este caso, el resultado del programa será:

1 0

5.2.7. Uso de PHP para aplicaciones web

Para usar PHP como lenguaje de desarrollo de aplicaciones web, la


primera necesidad que tenemos es saber cómo interactuará PHP con
nuestro usuario web. Podemos dividir dicha interactuación en dos
partes, mostrando información al usuario y recogiendo información
ANOTACIONES

de éste.

Mostrando información

Tenemos dos mecanismos para que PHP muestre información al


usuario: por un lado podemos escribir páginas HTML corrientes, in-
sertando sólo el código PHP que requerimos en medio del código
HTML. Por ejemplo:

198
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>

</HEAD>
<BODY>
<h1>Cabecera H1</h1>

<?php $a=1; ?>


<h1>Cabecera H1 segunda</h1>
<?php $b=1; ?>

</BODY>
</HTML>

Por otro lado, podemos usar PHP para generar contenido dinámico.
Para ello debemos usar las instrucciones de PHP de salida de datos,
la más importante, echo.

<HTML>
<HEAD>

<TITLE>Título del documento</TITLE>


</HEAD>
<BODY>

<h1>Cabecera H1</h1>
<?php echo “Contenido de la <B>página</B>“; ?>
<h1>Cabecera H1 segunda</h1>

</BODY>
</HTML>

Recogida de información del usuario


ANOTACIONES

Para recoger información del usuario, podemos utilizar los formula-


rios de HTML, utilizando nuestros programas PHP como ACTION de
dichos formularios. Como PHP fue diseñado para crear aplicaciones
web, el acceso a los valores introducidos por el usuario en los cam-
pos del formulario es realmente fácil en PHP, ya que éste define un
vector llamado REQUEST al que accedemos con el nombre del cam-
po como índice y que contiene el valor contenido en éste al ejecutar
el programa PHP.

199

 FUOC • XP04/90791/00021 Software libre

Si tenemos este formulario:

<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
<FORM ACTION=“programa.php” METHOD=GET>
Entre su nombre: <INPUT TYPE=TEXT NAME=“nombre”>
<INPUT TYPE=submit>
</FORM>
</BODY>
</HTML>

Y definimos el siguiente programa PHP como programa.php para


que responda al formulario:

<HTML>
<HEAD>
<TITLE>Título del documento</TITLE>
</HEAD>
<BODY>
<?php
echo “Hola “.$REQUEST[“nombre”];
?>
</BODY>
</HTML>

Este programa recogerá el nombre introducido por el usuario y nos


lo mostrará por pantalla.

5.2.8. Funciones de cadena


ANOTACIONES

PHP provee de un conjunto de funciones muy interesantes para el tra-


bajo con cadenas de texto. Algunas de las más destacadas son:

strlen Devuelve la longitud de una cadena.

explode Divide una cadena en función de un carácter separador,


y devuelve un vector con cada uno de los trozos de la cadena.

200
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

implode Actúa al revés que explode, uniendo diversas cadenas


de un vector con un carácter de unión.

strcmp Compara dos cadenas a nivel binario.

strtolower Convierte una cadena a minúsculas.

strtoupper Convierte una cadena a mayúsculas.

chop Elimina el último carácter de una cadena, útil para eliminar


saltos de línea o espacios finales superfluos.

strpos Busca dentro de una cadena otra cadena especificada y de-


vuelve su posición.

str_replace Reemplaza en una cadena una aparición de una


subcadena por otra subcadena.

Podemos ver el funcionamiento de algunas de estas funciones en el


siguiente ejemplo:

<?php
$cadena1 = “hola”;
$cadena2 = “pera,manzana,fresa”;

$longitud = str_len($cadena1); //longitud=4

$partes = explode(“,”,$cadena2);
//genera el array $partes con $partes[0]=“pera”,
//$partes[1]=“manzana”; y $partes[2]=“fresa”;

$chop = chop($cadena); // chop elimina la “a”

$cadena3 = str_replace(“,”,”;”,$otracadena);
//$cadena3 contiene: pera-manzana-fresa
ANOTACIONES

//Cambiamos las , por –


?>

5.2.9. Acceso a ficheros

PHP proporciona un amplio repertorio de métodos para el acceso a


ficheros. Vamos a mostrar la más práctica y simple, muy adecuada
si los ficheros a los que accederemos son pequeños.

201

 FUOC • XP04/90791/00021 Software libre

El código que comentaremos es el siguiente:

<?php
$fichero = file(“entrada.txt”);
$numlin = count($fichero);

for($i=0; $i < $numlin; $i++)


{
echo $fichero[$i];
}
?>

En este ejemplo leemos un archivo que tiene por nombre entrada.txt


y lo mostramos como salida. El primer paso que seguimos es declarar
la variable fichero, lo que nos genera un vector en el que PHP co-
locará todas las líneas del archivo. Para ello usaremos la función de
librería file. El siguiente paso consiste en averiguar cuántos elemen-
tos contiene fichero. Para ello usamos la función count, que nos
devuelve el tamaño de un vector, en este caso el vector que hemos ge-
nerado al leer el fichero. Finalmente podemos escribir un bucle que re-
correrá el vector tratando cada una de las líneas del archivo.

PHP proporciona muchas funciones más de tratamiento de ficheros.


Disponemos, por ejemplo, de la función fopen, que permite abrir
ficheros o recursos sin leerlos íntegramente en memoria y que es ca-
paz de abrir ficheros de la siguiente forma:

<?php
$recurso = fopen (“entrada.txt”, “r”);
$recurso = fopen (“salida.gif”, “wb”);
$recurso = fopen (“http://www.uoc.edu/”, “r”);
$recurso = fopen (
“ftp://usuario:[email protected]/salida.txt”, “w”);
?>
ANOTACIONES

Ahí podemos ver cómo abrimos un fichero para lectura (‘‘r’’), para
escritura binaria (‘‘wb’’), una página web para leerla como si se tra-
tara de un fichero y un fichero vía FTP para escribirlo, respectivamente.

5.2.10. Acceso a bases de datos

PHP proporciona métodos para acceder a un gran número de siste-


mas de bases de datos (mySQL, PostgreSQL, Oracle, ODBC, etc.).

202
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

Esta funcionalidad es imprescindible para el desarrollo de aplicacio-


nes web complejas.

Acceso a mySQL desde PHP

mySQL es uno de los sistemas de bases de datos más populares en


el desarrollo de aplicaciones web ligeras por su alto rendimiento
para trabajar con bases de datos sencillas. Gran cantidad de aplica-
ciones web de consulta, etc. están desarrolladas con el dueto PHP-
mySQL. Por eso el API de acceso a mySQL de PHP está altamente de-
sarrollado.

Vamos a ver un ejemplo de acceso a la base de datos desde PHP


para comprobar así la sencillez con la que podemos usar bases de
datos en nuestras aplicaciones web:

<?php

$conexion=mysql_connect($servidor,$usuario,$password);
if(!$conexion).
{
exit();
}
if(!(mysql_select_db($basedatos,$conexion)))
{
exit();
}
$consulta=mysql_query(
“select nombre, telefono from agenda order by nombre”,
$conexion);
while($fila = mysql_fetch_array($consulta))
{
$nombre = $fila[“nombre”];
$teléfono = $fila[“telefono”];
ANOTACIONES

echo “$nombre: $telefono\n<br>“;


}
mysql_free_result($consulta);
mysql_close($conexion);
?>

Podemos ver que el primer paso para acceder a la base de datos es


abrir una conexión con ésta. Para ello necesitaremos la dirección del
ordenador que contenga la base de datos, el usuario con el que co-

203

 FUOC • XP04/90791/00021 Software libre

nectaremos y la palabra de acceso a dicha base de datos. Una vez


conectados al servidor de mySQL, debemos seleccionar qué base de
datos de las múltiples que puede tener el servidor queremos usar
para trabajar. A raíz de esta secuencia de conexión, tendremos en la
variable conexión los datos de la conexión a mySQL. Debemos pasar
esta variable a todas las funciones de PHP que accedan a bases de
datos. Ello nos permite disponer de diversas conexiones a diferentes
bases de datos abiertas al mismo tiempo y trabajar con ellas simul-
táneamente.

El siguiente paso será ejecutar una sentencia de consulta de bases de


datos en el lenguaje de nuestra base de datos, en este caso SQL.
Para ello usaremos la función de PHP mysql_query, que nos de-
volverá el resultado de la consulta y que guardaremos en la variable
consulta. La consulta concreta enumera el contenido de una tabla
de la base de datos llamada agenda, la cual contiene dos columnas
denominadas nombre y telefono.

Posteriormente, podemos ejecutar un bucle que recorrerá todos los


registros para que nos devuelva la consulta a la base de datos, ac-
cediendo a ellos uno a uno y pudiendo así mostrar los resultados.

Una vez hayamos acabado el acceso a la base de datos, debemos


liberar la memoria y los recursos consumidos con la consulta. Para
ello utilizaremos la función mysql_free_result y luego podre-
mos cerrar la conexión a mySQL.

Acceso a PostgreSQL desde PHP

De forma similar a como accedemos a mySQL, podemos acceder a


bases de datos que tengamos en servidores PostgreSQL. Para ello
utilizaremos, al igual que en la sección anterior, un código que enu-
ANOTACIONES

merará el contenido de nuestra tabla agenda.

<?php

//conectamos a la base de datos


//$conexion = pg_connect(“dbname=“.$basedatos);

// conectamos a la base de datos en servidor puerto “5432”


//$conexion = pg_connect(
// “host=$servidor port=5432 dbname=$basedatos”);

204
Desarrollo de aplicaciones web 
 FUOC • XP04/90791/00021

//conectamos a la base de datos en servidor puerto “5432”


//con usuario y password
$conexion = pg_connect(“host=$servidor port=5432 “.
“dbname=$basedatos user=$usuario password=$password”)
or die “No conecta”;

$resultado = pg_query($conexión,
“select nombre, telefono from agenda order by nombre”);

while($fila = pg_fetch_array($result))
{
$nombre = $fila[“nombre”];
$telefono = $fila[“telefono”];
echo “$nombre: $telefono\n<br>“;
}
pg_close($dbconn);

?>

Como podemos observar si comparamos este ejemplo con el ante-


rior realizado en mySQL, existe gran similitud entre ambos códigos.
No obstante, a pesar de las similitudes, el API de PostgreSQL para
PHP presenta algunas diferencias respecto al de mySQL, ya que por
un lado ofrece mayor flexibilidad a la hora de conectar y por otro la-
do, proporciona el soporte para trabajar con objetos grandes, etc.,
lo cual muestra la mayor potencia de PostgreSQL frente a mySQL.
Un punto controvertido en el API de PostgreSQL es que nos aísla to-
talmente del sistema de transacciones de PostgreSQL, cosa que a pe-
sar de que en la mayoría de situaciones es más que correcta, existen
casos en los que sería deseable un mayor control sobre éstas.

5.2.11. Para seguir profundizando

Uno de los puntos fuertes y una de las claves del éxito de PHP como
lenguaje de programación de aplicaciones web reside en la gran can-
tidad de librerías, módulos, etc., que se han desarrollado para él. PHP
ANOTACIONES

pone a nuestra disposición una cantidad ingente de API, funciones,


módulos, clases (recordad que, progresivamente, PHP se está convir-
tiendo en un lenguaje de programación orientado a objetos), los cua-
les nos permiten operar con la complejidad creciente de las
aplicaciones web. Esta diversidad de soporte incluye, entre otras cosas:

• Control de sesiones.

• Control de identidad de usuarios.

205

 FUOC • XP04/90791/00021 Software libre

• Plantillas HTML.

• Carritos de compra.

• Creación dinámica de HTML.

• Creación de imágenes dinámicamente.

• Manejo de cookies.

• Transferencia de ficheros.

• Manejo de XML, XSLT, etc.

• Múltiples protocolos de comunicaciones: HTTP, FTP, etc.

• Creación de ficheros PDF.

• Acceso a directorios LDAP.

• Interfaces a multitud de bases de datos: Oracle, Sybase, etc.

• Expresiones regulares.

• Manejo de equipos de red: SNMP.

• Servicios web: XMLRPC, SOAP.

• Manejo de contenidos Flash.

Además de su utilidad como lenguaje de programación de aplicacio-


nes web, PHP está siendo cada vez más usado como lenguaje de
programación de propósito general, incluyendo en su arsenal de
funciones interfaces hacia las librerías de interfaces gráficos más co-
nocidas (Win32 o GTK, entre otras), acceso directo a funciones del
sistema operativo, etc.
ANOTACIONES

Por eso, en caso de desear usar PHP para desarrollar algún proyecto,
resulta altamente recomendable visitar la página web del proyecto
(http://www.php.net), ya que es muy posible que nos ofrezca un sur-
tido de herramientas que nos faciliten grandemente el trabajo. Dis-
ponemos, además, de PEAR, un repositorio de PHP que nos
proporcionará la mayor parte de las herramientas que podamos lle-
gar a necesitar.

206

También podría gustarte