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)
(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 anterior)
mysql_free_result($Resultado);
mysql_close($link);
(versión nueva)
$Resultado->free();
$DB->close();