Tema: PHP y MySQL
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/01/2013, 10:36
Avatar de SetheR
SetheR
 
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: PHP y MySQL

En resumidas cuentas, por estas principales razones:

1 - PDO viene por defecto con varios drivers, es decir, podrás utilizar el mismo código para varias bases de datos ( en algunos casos haciendo pequeños cambios, pues no todos los DBMS manejan el mismo código SQL) tan sólo con indicar eldriver adecuado.

Con PDO podrás manejar MySql, Postgres, Informix, SQLite, entre otros. Mientras que con mysqli sólo podrás manejar MySql.

Claro punto a favor de PDO.

2 - Pese a que los dos sistemas hacen uso de sentencias preparadas (prepared statements), PDO tiene una ventaja en éste sentido, ya que te posibilita nombrar los parámetros. Un ejemplo (de la doc)

Código PHP:
Ver original
  1. <?php
  2. /* Ejecutar una sentencia preparada vinculando varialbes de PHP */
  3. $calorías = 150;
  4. $color = 'red';
  5. $gsent = $gbd->prepare('SELECT name, colour, calories
  6.    FROM fruit
  7.    WHERE calories < :calories AND colour = :colour');
  8. $gsent->bindParam(':calories', $calorías, PDO::PARAM_INT);
  9. $gsent->bindParam(':colour', $color, PDO::PARAM_STR, 12);
  10. $gsent->execute();
  11. ?>

Con mysqli, se deben sustituir parámetros respecto a la posición que tienen en la consulta (PDO también permite hacerlo de ésta manera).

Por el lado de mysqli, he de decir que su principal ventaja es que se puede utilizar de formal procedural (no orientada a objetos), a parte de la orientada a objetos. (personalmente no me aprece una gran ventaja, ya que se pierde la ventaja de la encapsulación y la modularidad, que creo que es completamente esencial en una "conexion" a la base de datos).

Sobra decir que la seguridad es infinitamente superior en cualquiera de éstos métodos que con las funciones obsoletas. No deberás preocuparte por ataques de inyección SQL y cosas similares. PDO/mysqli se encargarán de protegerse. (Lo que no quiere decir que no se tengan que validar los datos, ojo)


Te recomiendo utilizar PDO. La gran mayoria de los frameworks PHP utilizan esta extensión. Una vez que seas familiar con su uso, podrás diseñaraplicaciones mas escalables y más seguras.

Saludos