• No se han encontrado resultados

Conexión a Bases de Datos

N/A
N/A
Protected

Academic year: 2021

Share "Conexión a Bases de Datos"

Copied!
8
0
0

Texto completo

(1)

Conexión a Bases de Datos

MySQL desde PHP

Introducción.

l sistema de acceso y manipulación de bases de datos desde PHP es similar al de otros lenguajes de script: establece la conexión con la base de datos, ejecuta las sentencias de consulta o modificación y finalmente cierra la conexión.

PHP soporta compatibilidad con accesos a múltiples sistemas de bases de datos, sin embargo, el modo

de programación sobre cada tipo de base de datos, no presenta, como en otros casos, la misma nomenclatura. PHP utiliza funciones de nombre genérico, pero precedidas normalmente por el nombre del sistema de base de datos, de modo que las funciones que ofrece el lenguaje para el acceso a cada tipo de base de datos son diferentes.

Establecimiento de conexión con bases de datos MySQL

Para establecer la conexión con una base de datos MySQL desde PHP, se utiliza la función:

mysql_connect("NombreHost","Usuario","Contraseña")

cuyos parámetros son opcionales, e indican el nombre del servidor -o IP del mismo- (‘NombreHost’) donde se encuentra la base de datos, el ‘Usuario’ de acceso a la base de datos, y la ‘Contraseña’ de acceso. En caso de éxito la función devuelve un identificador del enlace con el sistema de bases de datos.

Una vez establecida la conexión, hay que indicar al sistema, la base de datos con la que se desea trabajar, usando la función:

mysql_select_db("NombreBaseDatos")

Y finalmente, para cerrar la conexión utilizamos:

mysql_close($conexion)

donde debemos pasarle como parámetro el enlace con la conexión inicialmente establecida.

Ejemplo:

<?php

#Conectamos con MySQL

$conexion = mysql_connect("NombreHost","Usuario","Contraseña") or die ("Fallo en el establecimiento de la conexión");

#Seleccionamos la base de datos a utilizar

mysql_select_db("NombreBaseDatos")

or die("Error en la selección de la base de datos"); # ################################### #

# Aquí insertaríamos las consultas sobre la base de datos # # ################################### #

#Cerramos la conexión con la base de datos

mysql_close($conexion); ?>

(2)

Consultas Sobre Bases de Datos

MySQL

Para efectuar consultas sobre una base de datos MySQL, se utiliza en PHP la función:

mysql_query($sql, $conexion)

que toma como parámetros, una cadena con la consulta SQL a ejecutar (SELECT, INSERT, DELETE, etc.), y el enlace con la base de datos (opcional). Devuelve un identificador del resultado en caso de éxito o FALSE en caso de error en la consulta.

Solo con la ejecución de la consulta sobre la base de datos, no podemos presentar el resultado de la misma. Para poder mostrar información resultante de una consulta deberemos hacer uso de funciones complementarias. Una de las posibles es:

mysql_fetch_array($id_resultado)

que devuelve un array con el resultado de la sentencia extraída identificada por el parámetro facilitado.

Ejemplo:

<?php

#Conectamos con MySQL

$conexion = mysql_connect("NombreHost","Usuario","Contraseña") or die ("Fallo en el establecimiento de la conexión");

#Seleccionamos la base de datos a utilizar

mysql_select_db("NombreBaseDatos")

or die("Error en la selección de la base de datos");

#Efectuamos la consulta SQL

$result = mysql_query ("select * from personal" ) or die("Error en la consulta SQL");

#Mostramos los resultados obtenidos

while( $row = mysql_fetch_array ( $result )) { echo $row [ "id" ];

echo $row [ "nombre" ]; }

(3)

Práctica 1

Necesitamos una Base de Datos llamada “basecurso”, con la siguiente tabla de MySQL:

CREATE TABLE tablacurso (

id integer(3) unsigned NOT NULL auto_increment, nombre varchar(30) DEFAULT '0' ,

direccion varchar(30) DEFAULT '0' , telefono varchar(30) DEFAULT '0' , email varchar(30) DEFAULT '0' , imagen varchar(30) DEFAULT '0' , PRIMARY KEY (id)

);

Conectarse

Empecemos con el primer script, que nos mostrará como conectarnos a un base de datos (conectarse.php). conectarse.php <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php function Conectarse(){ if (!($link=mysql_connect("localhost","usuario","password"))){ echo "Error conectando a la base de datos.";

exit(); }

if (!mysql_select_db("basecurso",$link)){

echo "Error seleccionando la base de datos."; exit();

}

return $link; }

Conectarse();

echo "Conexión con la base de datos conseguida.<br>"; ?>

</body> </html>

(4)

Como podemos ver en el ejemplo anterior aislé lo necesario para la conexión en una función, ahora esa función la pondremos en un archivo PHP solo (conec.php).

conec.php <?php function Conectarse(){ if (!($link=mysql_connect("localhost","usuario","password"))) { exit(); } if (!mysql_select_db("basecurso",$link)){ exit(); } return $link; } ?>

Ya que tenemos la función en un archivo separado solo hay que mandarlo llamar cuando sea necesario, de esta forma cuando tengamos aplicaciones complejas que use muchas páginas php y sea necesario cambiarle algo a la conexión solo se le tenga que hacer el cambio a este pequeño archivo y no a todas las páginas.

Agregar registros

Veremos un ejemplo de agregar registros a la base de datos (insertareg.php y agregar.php). insertareg.php <html> <head> <title>Ejemplo de PHP</title> </head> <body>

<h1>Ejemplo de uso de bases de datos con PHP y MySQL</h1> <form action="agregar.php" method="post">

<TABLE> <tr>

<td>Nombre:</td>

<td><input type="text" name="nombre" size="20" maxlength="30"></td> </tr>

<tr>

<td>Direccion:</td>

<td><input type="text" name="direccion" size="20" maxlength="30"></td> </tr>

<tr>

<td>Telefono:</td>

<td><input type="text" name="telefono" size="20" maxlength="30"></td> </tr>

<tr>

<td>Email:</td>

(5)

<tr>

<td>Imagen:</td>

<td><input type="text" name="imagen" size="20" maxlength="30"></td> </tr>

</TABLE>

<input type="submit" name="accion" value="Grabar"> </FORM>

<hr>

<?php

include("conec.php"); $link=Conectarse();

$result=mysql_query("select * from tablacurso",$link); ?>

<table border="1" cellspacing="1" cellpadding="1"> <tr> <td>&nbsp;Nombre</td> <td>&nbsp;Dirección&nbsp;</td> <td>&nbsp;Telefono&nbsp;</td> <td>&nbsp;Email&nbsp;</td> <td>&nbsp;Imagen&nbsp;</td> </tr> <?php while($row = mysql_fetch_array($result)) {

printf("<tr><td> &nbsp;%s </td><td> &nbsp;%s&nbsp; </td><td> &nbsp;%s&nbsp; </td><td> &nbsp;%s&nbsp; </td><td> &nbsp; <imgsrc=%s> &nbsp; </td></tr>", $row["nombre"], $row["direccion"], $row["telefono"], $row["email"],

$row["imagen"]); } mysql_free_result($result); ?> </table> </body> </html> agregar.php <?php include("conec.php"); $link=Conectarse();

$Sql="insert into tablacurso (nombre,direccion,telefono,email,imagen) values ('".$_POST["nombre"]."','".$_POST["direccion"]."', '".$_POST["telefono"]."', '".$_POST["email"]."', '".$_POST["imagen"]."')"; mysql_query($Sql,$link); header("Location: insertareg.php"); ?>

(6)

Modificar registros

Veremos un ejemplo de modificar registros a la base de datos, consta de tres archivos diferentes, el primero para introducir la consulta por el campo nombre, el segundo para realizar los cambios necesarios y el tercero para modificar la base de datos (consulta.htm, busca.php y modifica.php).

consulta.htm <html> <head> <title>Ejemplo de PHP</title> </head> <body> <h1>Ejemplo de modificar</h1>

<form action="busca.php" method="post"> Nombre:

<input type="text" name="nombre" size="20" maxlength="30"> <input type="submit" name="accion" value="Buscar">

</FORM> </body> </html> busca.php <html> <body> <?php include("conec.php"); $link=Conectarse();

$Sql="select * from tablacurso where nombre like '%."$_POST["nombre"]."%'"; $result=mysql_query($Sql,$link);

?>

<table border="1" cellspacing="1" cellpadding="1"> <tr> <td>&nbsp;Nombre</td> <td>&nbsp;Dirección&nbsp;</td> <td>&nbsp;Telefono&nbsp;</td> <td>&nbsp;Email&nbsp;</td> <td>&nbsp;Imagen&nbsp;</td> </tr>

<form name="form1" method="post" action="modifica.php">

<?php

(7)

while($row = mysql_fetch_array($result)) {

printf("<tr><td><INPUT TYPE='text' NAME='nombre' SIZE='20' MAXLENGTH='30' value='%s'></td><td>&nbsp;<INPUT TYPE='text' NAME='direccion' SIZE='20'

MAXLENGTH='30' value='%s'>&nbsp;</td><td>&nbsp;<INPUT TYPE='text' NAME='telefono' SIZE='20' MAXLENGTH='30' value='%s'>&nbsp;</td><td>&nbsp;<INPUT TYPE='text'

NAME='email' SIZE='20' MAXLENGTH='30' value='%s'>&nbsp;</td><td>&nbsp;<INPUT TYPE='text' NAME='imagen' SIZE='20' MAXLENGTH='30' value='%s'>&nbsp;</td></tr>", $row["nombre"],$row["direccion"],$row["telefono"],$row["email"],$row["imagen"]); }

mysql_free_result($result); ?>

<input type="submit" name="accion" value="Guardar"> </form> </body> </html> modifica.php <?php include("conec.php"); $link=Conectarse();

$Sql="UPDATE tablacurso SET nombre='".$_POST["nombre"]."',

direccion='".$_POST["direccion"]."', email='".$_POST["email"]."', telefono='".$_POST["telefono"]."' imagen='".$_POST["imagen"]."' WHERE nombre='".$_POST["nombre"]."'"; mysql_query($Sql,$link); header("Location: consulta.htm"); ?> Eliminar registros

Pasemos a la eliminación de registros, este consta de dos archivos, los dos .php el primero es para elegir el registros a borrar y el segundo lo borra (eliminareg.php y borra.php).

eliminareg.php <html> <head> <title>Ejemplo de PHP</title> </head> <body>

<h1>Ejemplo de uso de bases de datos con PHP y MySQL</h1>

<?php

include("conec.php"); $link=Conectarse();

$result=mysql_query("select * from tablacurso",$link); ?>

(8)

<tr> <td>&nbsp;Nombre</td> <td>&nbsp;Dirección&nbsp;</td> <td>&nbsp;Telefono&nbsp;</td> <td>&nbsp;Email&nbsp;</td> <td>&nbsp;Imagen&nbsp;</td> <td>&nbsp;Borra&nbsp;</td> </tr> <?php while($row = mysql_fetch_array($result)) {

printf("<tr><td> &nbsp;%s </td><td> &nbsp;%s&nbsp; </td><td> &nbsp;%s&nbsp; </td><td> &nbsp;%s&nbsp; </td><td> &nbsp;%s&nbsp; </td></td><td> <a

href=\"borra.php?id=%d\"> Borra </a></td></tr>", $row["nombre"],

$row["direccion"], $row["telefono"], $row["email"], $row["imagen"], $row["ID"]); } mysql_free_result($result); ?> </table> </body> </html> borra.php <?php include("conec.php"); $link=Conectarse();

mysql_query("delete from tablacurso where ID = ".$_GET["id"],$link); header("Location: eliminareg.php");

?>

Conclusiones.

Ya conocemos como manejar una base de datos de MySQL con PHP, pero que pasa si nosotros tenemos nuestra base de datos en Microsoft Access y es una base de datos enorme, que nos llevaría mucho tiempo en convertirla en MySQL, existe una solución para poder usarla en PHP, esta opción es ODBC.

Referencias

Documento similar

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)