2011-06-02 31 views
10

Acabo de ver esto por primera vez. No tenía idea de que puede crear una instancia de una clase mysqli haciendo algo comomysqli, OOP vs Procedural

new mysqli($host, $username, $password, $db); 

Esto es nuevo para mí ... Cada tutorial que he visto en línea o en los libros cuando se conecta a la base de datos hace algo como esto:

$conn = mysqli_connect($host, $username, $password, $db); 

if (!$conn) { 
    die('Sorry, could not connect'); 
} 

¿Hay alguna razón por la cual la mayoría de los tutoriales lo hacen por el procedimiento? Incluso en los tutoriales que he visto al crear una clase de base de datos separada, díganme que use el código de estilo de procedimiento ...

¿Cuál es la diferencia con mysqli procedural vs oop? ¿Hay alguna? ¿Tengo que instalar extensiones de algún tipo o puedo empezar a usarlas en mi código? Total de novedades aquí, así que no estoy muy seguro.

Además, ¿cuándo es una buena idea usar PDO contra mysqli? ¿La PDO es utilizada más comúnmente por desarrolladores que trabajan en aplicaciones Enterprise a gran escala? O simplemente es una cuestión de preferencia.

Gracias por cualquier ayuda ...

php aprendizaje se ha convertido rápidamente adictivo ... Sólo quieren saber más y más.

+0

La mayoría de los tutoriales para mysqli están destinados a personas que estaban familiarizadas con la antigua biblioteca mysql, que solo era de procedimiento. La transición de mysql a mysqli de procedimiento es menos un cambio mental para las personas que la transición a OO mysqli. Pero, como Alex señala a continuación, usar PDO es mejor que usar cualquiera de los anteriores, así que ve directamente allí. –

Respuesta

11

El 99% de los tutoriales de PHP en Internet son obsoletos, abogan por un código terrible o están escritos por personas que probablemente no deberían enseñar PHP (y comúnmente todas las anteriores). Deberías encontrar el handful of good ones.

PDO generalmente se ve favorecido por mysqli por los desarrolladores, incluyéndome a mí. Por un lado, puede manejar muchas más bases de datos además de MySQL.

+0

+1 para la primera oración y, si fuera posible, también habría un +1 para la siguiente. –

+1

página vinculada se elimina. ¿Puedes enumerar los buenos tutoriales de PHP en esta respuesta? – MAKZ

+0

@MAKZ Obtenga un representante de 10k y lo puede ver :) – alex

3

La mayoría de las funciones de mysqli_* son alias de los métodos del objeto (PHP internamente permite eso fácilmente con una macro C, por lo que muchas extensiones usan ese enfoque). Pero la disponibilidad también es familiar, por lo que los usuarios de las antiguas funciones de mysql tienen más facilidad para adoptar la nueva interfaz. Usar el OOP o la interfaz de procedimientos es realmente solo estilo/preferencia.

PDO generalmente se prefiere hoy en día, pero no proporciona muchas características específicas de mysql. Por lo tanto, podría haber algunos casos de uso para la extensión mysqli.

4

para responder a sus preguntas desde el punto de vista

práctica ¿Hay una razón por la cual la mayoría de los tutoriales hacen de la manera procedimental?

Basta decir que las razones no están relacionadas con la tecnología.

¿Cuál es la diferencia con mysqli procedural vs oop? ¿Hay alguna?

¿Tengo que instalar cualquier extensión

No (a excepción de mysqli sí, por supuesto).

Además, ¿cuándo es una buena idea usar PDO?

Sí. Como cuestión de hecho, PDO sería la única opción sana.

Debe comprender que el conjunto de funciones de mysqli es solo un API de bajo nivel, que no está destinado a utilizarse tal cual. Uno tiene que implementar un wrapper sobre mysqli, y luego usar los métodos de este envoltorio. Mientras que PDO es una envoltura ya, que ofrece ayuda para realizar muchas tareas. Escribí a guide on PDO, que enfatiza sus beneficios y revela algunas supersticiones, donde espero que encuentres respuestas para muchas preguntas que seguramente tienes.