Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/10/2010, 20:44
RodrigoG
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
Pregunta Crear clase para conectar a la base de datos... mysql o mysqli?

Hola gente,

Conciso:
¿Para crear una clase para conectar a la base de datos mysql me conviene usar mysql_conect, mysql_query, etc o me conviene usar mysqli ?

Detalloso:

Resulta que cree una clase para usar una base de datos (en este caso mysql). No es la gran cosa, pero me es útil para hacer cosas de éste estílo:

Código PHP:
Ver original
  1. $bd = BaseDatos::instancear();
  2.  
  3. $usuarios = $bd->ek_objetos('SELECT * FROM usuarios');
  4.  
  5. echo '<ul>';
  6. foreach($usuarios as $usuario) {
  7.    echo '<li>'.$usuario->nombre.', ';
  8.    echo $usuario->edad.', ';
  9.    echo $usuario->sexo.'</li>';
  10. }
  11. echo '</ul>';

Código PHP:
Ver original
  1. // o bien
  2.  
  3. $bd = BaseDatos::instancear();
  4.  
  5. $libros = $bd->ek_arreglos('SELECT * FROM usuarios');
  6.  
  7. echo '<ul>';
  8. foreach($libros as $libro) {
  9.    echo '<li>'. $libro['titulo'] .', ';
  10.    echo $libro['autor'] .', ';
  11.    echo $libro['editorial'] .'</li>;
  12. }
  13. echo '</ul>
  14.  
  15. // o bien
  16.  
  17. $libro = $bd->ek_arreglos();
  18. echo '<ul>';
  19. foreach($libros as $libro) {
  20.   echo '<li>';
  21.   foreach( $libro as $dato ) {
  22.     echo $dato .', ';
  23.   }
  24.   echo '</li>';
  25. }
  26. echo '</ul>';


Para esto usé la api básica de php para conectar con mysql, esas sentencias tipo mysql_conect, mysql_fetch_array, etc.

El problema es que ahora estaba revisando el manual php y dice lo siguiente:

Cita:
Note:
Si se utiliza una versión de MySQL 4.1.3 o posterior, se recomienda encarecidamente utilizar la extensión mysqli en su lugar. (http://www.php.net/manual/es/mysqli.overview.php)
Entonces estoy plop!, ¿Qué tiene de bueno mysqli que no tenga la api mysql a secas? Eso de la orientación a objetos lo entiendo y es por eso que me cree una clase, por ejemplo si mañana cambio de mysql a postgreSQL sólo cambio mi clase y listo, pero si uso mysqli tendría que recorrer todo el código para cambiar cada sentencia mysqli.

¿Qué opinan? ¿Continúo tal como voy?

muchas gracias!