Mi lista de blogs

lunes, 8 de octubre de 2012

Uso de MySQL desde PHP, Versión 5.0 vs. 5.5


He tenido algunos problemas para utilizar MySQL desde PHP en diferentes servidores, ya que en algunos casos se sigue utilizando la versión 5.0 o 5.1 de MySQL, que no permite el manejo de la clase mysqli.

El manual de PHP nos recomienda usar la clase mysqli, pero de no ser posible, a continuación describo las cuatro diferencias que se deben considerar en una aplicación sencilla.

1.- Para abrir la base de datos:
(versión anterior)

$link=mysql_connect('localhost','usuario','password');
if (!$link) 

 die ('No se puede conectar: '.mysql_error()); 
}

$db_selected = mysql_select_db('base_datos', $link);
if (!$db_selected)
{
 die ('No se puede conectar: '.mysql_error()); 
}

(versión nueva)
@$DB = new mysqli('localhost','usuario','password','base_datos');

if (mysqli_connect_errno())
{
 echo 'No se puede conectar a la base de datos: ' . mysqli_connect_error();
}

2.- Para hacer una consulta:
(versión anterior)

 $Query = 'SELECT * FROM pedidos WHERE folio = '.$folio;
 $Resultado = mysql_query($Query);



(versión nueva)

 $Query = 'SELECT * FROM pedidos WHERE folio = '.$folio;
 $Resultado = $DB->query($Query);
 $NumResults = $Resultado->num_rows;

3.- Para barrer la tabla, estableciendo un ciclo:
(versión anterior)
 while ($Row = mysql_fetch_assoc($Resultado))


(versión nueva)

 while ($Row = $Resultado->fetch_assoc())

4.- Para cerrar la base de datos:
(versión anterior)

 mysql_free_result($Resultado);
 mysql_close($link);


(versión nueva)
 $Resultado->free();
 $DB->close();