Conectar y consultar base de datos en PHP

De ChuWiki
Saltar a: navegación, buscar

Contenido

Conexión con la base de datos

<?php
$host="nombreHostServidor";
$user="usuarioBD";
$password="passwordBD";

$link = mysql_connect ($host, $user, $password) or die ("<center>No se puede conectar con la base de datos\n</center>\n");
?>

Las variables del código son:

  • $host: Nombre del host en el que está la base de datos
  • $user : Un nombre de usuario de la base de datos.
  • $password: Clave para ese usuario

El comando or die salta cuando hay un error y nos permite mostrar un mensaje por pantalla (como en el ejemplo) o llamar a otra función. La función mysql_connect() nos conecta con una base de datos de mysql en el puerto por defecto de mysql. Si devuelve null, es que no se ha podido conectar. Nos devuelve el "enlace" con la base de datos en $link.


Anexo


Hay que tener en cuenta el trato de las claves, usuarios, etc. Ya que cualquiera que esté en posesión de un usuario de la BD con suficientes permisos puede hacer mucho daño.

Una optimización sería añadir al inicio [include('ficheroDatos.php')] un fichero con las claves encriptadas (en md5 por ejemplo) y utilizarlas con más tranquilidad en el código.

Consulta a la base de datos

<table>
<tr>
<td>Etiqueta Campo 1</td>
<td>Etiqueta Campo 2</td>
</tr>
<?php
   $dbname="nombreBaseDatos";
   $tablename="nombreTabla";
   $query="SELECT * FROM $tablename;";
   $result=mysql_db_query ($dbname, $query, $link);
   while ($row = mysql_fetch_array ($result))
   {
      print ("<TR>");
      print ("<TD>$row[nombreCampo1]</TD>\n");
      print ("<TD>$row[nombreCampo2]</TD>\n");
      print ("</TR>");		
    }
    mysql_free_result($result);
?>
</table>
Hemos supuesto que hay dos campos nada más en la tabla y vamos a sacar el resultado en un normalito de HTML. Las variables son
  • $dbname: Nombre de la base de datos a usar.
  • $tablename: Nombre de la tabla a usar
  • $query: La consulta que queremos realizar
La función mysql_db_query realiza la consulta y devuelve los resultados en $result Con un while y la función mysql_fetch_array () vamos obteniendo cada uno de las filas resultado de la consulta. Se guarda cada fila en $row Para ir obteniendo los campos, usamos $row como un array en el que el indice es el nombre del campo en la base de datos. Hemos supuesto que son "nombreCampo1" y "nombreCampo2"

Para finalizar, con la función mysql_free_result() liberamos la memoria que hemos reservado para gestionar el conjunto de campos devueltos por la base de datos (que puede ser muy grande según lo que saquemos con la query).

Cerrar la base de datos

<?php
mysql_close($link);
?>


Enlaces externos