[GUIA] Como usar MYSQL con PHP

Moderador: dresha

Reglas del Foro
En Ogarena no están bien vistos el Warez ni la Piratería; para eso hay otros foros que seguro os acogen con los brazos abiertos.
apokalypse
Helper Programación
Helper Programación
Mensajes: 207
Registrado: 25 Jun 2008 03:31

[GUIA] Como usar MYSQL con PHP

Mensaje por apokalypse »

INTRODUCCION

Esta guía sirve para aquellos que tengan un conocimiento sobre PHP y SQL y quieran usar las bases de datos para crear páginas web dinámicas.

Crearé otra guía más adelante para aprender la base de SQL, pero para esta guía doy por sentado que se conoce el lenguaje de consultas a bases de datos SQL.

MYSQL tiene la ventaja de que como es software libre, está implementado en una gran cantidad de servidores en todo el mundo.

En esta guía os voy a dejar trozos de programas ya hechos y comprobados para que cambiando los valores no tengaís ninguna dificultad en usar MYSQL en PHP, entre otras cosas, porque suele ser algo "quisquilloso" con la sintaxis.

En esencia, para trabajar con bases de datos tenemos dos fases:

CONEXIÓN

En esta fase debemos especificar la base de datos, el usuario y la contraseña de la base de datos. La forma más sencilla es por medio de este código que escribí hace tiempo:

Código: Seleccionar todo

<?php
function Conectarse()

{

   $base_de_datos = "NOMBRE DE LA BASE DE DATOS";

   $usuario_bd = "USUARIO DE LA BASE DE DATOS";

   $pass_bd = "CONTRASEÑA DE LA BASE DE DATOS";

   $servidor="localhost"; // SI TRABAJAMOS EN EL MISMO SERVIDOR, NO CAMBIAR

   if (!($link=mysql_connect($servidor,$usuario_bd,$pass_bd)))

   {

      echo "Error conectando a la base de datos.";

      exit();

   }

   if (!mysql_select_db($base_de_datos,$link))

   {

      echo "Error seleccionando la base de datos.";

      exit();

   }

   return $link;

}
?>
Este código permite tener una forma sencilla e intuitiva para hacer conexiones cambiando simplemente los valores de las variables iniciales. Lo normal es guardar este código en un fichero aparte (conectar.php) y usarlo en la página PHP con este otro código:

Código: Seleccionar todo

require("conectar.php");
$link=Conectarse();
La variable $link guarda la conexión a la base de datos y es necesario guardarla para la siguiente fase.

TRABAJAR EN LA BASE DE DATOS

Una vez hecha la base la datos, se pueden hacer estas 4 tareas:

* Insertar :

Código: Seleccionar todo

$sql = "INSERT INTO tabla (id, atributo1, ..., atributoN) VALUES (NULL, 'texto',numero)";
$resultado=mysql_query($sql, $link) or die (mysql_error());
La parte de "or die(mysql_error())" es útil porque en el caso de ocurrir un error SQL detiene la ejecución y da una pequeña descripción del error.

Si en el campo de valores quereís escribir una variable hacerlo de la siguiente manera para evitar errores:

Código: Seleccionar todo

$variable_texto="PRUEBA";
$variable_numero=1234;
$sql = "INSERT INTO tabla (id, atributoTexto, atributoNumero) VALUES (NULL, '{$variable_texto}',{$variable_numero})";
$resultado=mysql_query($sql, $link) or die (mysql_error());
En estos códigos hay comillas dobles al principio y final del SQL y comillas simples para marcar los valores de tipo texto.

* Modificar :

Código: Seleccionar todo

$sql='UPDATE tabla SET atributo=\'valor\' WHERE ...';
$resultado=mysql_query($sql, $link);

Y para usar una variable externa:

$variable="DA IGUAL NUMERO O TEXTO";
$sql='UPDATE tabla SET atributo=\''.$variable.'\' WHERE ...';
$resultado=mysql_query($sql, $link);
En estos códigos todas las comillas son comillas simples.

* Eliminar:

Código: Seleccionar todo

$sql='DELETE FROM tabla WHERE id=1';
$resultado=mysql_query($sql, $link);

O para incluir variables externas:
$sql='DELETE FROM tabla WHERE id='.$identificador.'';
$resultado=mysql_query($sql, $link);
En estos códigos todas las comillas son comillas simples.

* Hacer una consulta

Código: Seleccionar todo

$sql='SELECT campo1,...,campoN FROM tabla WHERE id=1';
$resultado=mysql_query($sql, $link);
while($row=mysql_fetch_row($resultado))
{
//en este bucle se va leyendo las tuplas de la consulta de 1 en 1
$campo1=$row[0];
$campoN=$row[n-1];

//aqui podriamos incluir código que por ejemplo mostrase datos de dicha tupla
}

Para incluir variables en el SQL, se cambiaria de esta forma:
$sql='SELECT campo1,...,campoN FROM tabla WHERE id='.$identificador.'';
De nuevo vuelven a usarse las comillas simples.

OTRAS NOTAS

* A veces ocurren problemas cuando usamos las mismas variables para hacer diferentes consultas y actualizaciones en la base de datos. Lo recomendable es que cada instrucción SQL que pongaís lleve un nombre algo distinto ($sql1,$sql2 --- $resultado1,$resultado2) aunque la variable $link debe ser siempre la misma si trabajamos solo en una base de datos.
Responder