Esta serie de tutoriales de PHP se ha vuelto loco cubriendo todos los aspectos fundamentales del uso de PHP para construir sitios web dinámicos. Con base en todos los conceptos cubiertos hasta ahora, debería poder crear enlaces a páginas, pasar datos a través $_GETde esos enlaces, crear formularios, recopilar datos de usuario a través $_POSTde esos formularios, así como utilizar cookies y sesiones para establecer estados y personalizar experiencias de usuario. Una cosa de la que no hemos hablado todavía es trabajar con MySQL en PHP . Un lugar fantástico para comenzar si es nuevo en MySQL es nuestro tutorial dedicado de 10 partes de MySQL Serie. Eso le dará una base fantástica sobre la que construir para trabajar con MySQL en PHP. En esta parte de nuestra serie de tutoriales PHP, veremos MySQL en términos de uso de PHP para leer y escribir datos, almacenar datos, organizar datos y establecer relaciones de datos.


API de base de datos en PHP

En primer lugar, hablemos un poco sobre las API de bases de datos en PHP. En términos simples, tenemos tres opciones integradas en el lenguaje PHP. La primera es mysql, que es la API de MySQL original para PHP. La siguiente opción es mysqli, que es la versión mejorada de MySQL de la api. Por último, PHP tiene PDOobjetos de datos PHP. En realidad, el antiguo mysql se puede ignorar en gran medida a menos que tenga la tarea de mantener una base de código heredada. En el mundo actual del desarrollo web, utilizará mysqli o PDO . Miremos un gráfico para ver las diferencias entre los tres.

 mysqlmysqliDOP
Introducidov2.0v5.0v5.1
Obsoletov5.5  
Integrado en PHPsisisi
Preconfigurado para MySQLsisiNo
¿Soporta bases de datos además de MySQL?NoNosi
Sintaxis proecduralsisiNo
Sintaxis orientada a objetosNosisi
Soporte para estados de cuenta preparadosNosisi

Esta es una gran descripción general de sus opciones de usar PHP para interactuar con su base de datos. En este episodio, veremos mysqliy nos centraremos en el enfoque procedimental. Esto no quiere decir que no se pueda utilizar mysqlien un enfoque orientado a objetos, mucho se puede. De hecho, comparemos los dos enfoques uno al lado del otro.

Sintaxis procedimental de mysqliSintaxis de mysqli OOP
mysqli_connect$ mysqli = nuevo mysqli
mysqli_connect_errno$ mysqli-> connect_errno
mysqli_connect_error$ mysqli-> connect_error
mysqli_real_escape_string$ mysqli-> real_escape_string
mysqli_query$ mysqli-> consulta
mysqli_fetch_assoc$ mysqli-> fetch_assoc
mysqli_close$ mysqli-> cerrar

Los 5 pasos

Ahora que tenemos una descripción general de alto nivel, veamos los cinco pasos de la conectividad de la base de datos en PHP . Estos cinco pasos son realmente el pan y la mantequilla de conectarse a su base de datos y utilizará este enfoque sin importar qué tipo de interfaz elija, por lo que tiene sentido comprender el concepto de cada paso. Esto lo convertirá en un mejor programador y le dará una mejor capacidad para solucionar problemas cuando las cosas no salgan como lo había planeado.

  • 1. Cree la conexión a la base de datos. Puede pensar en este paso casi como levantar un teléfono y llamar a alguien. Una vez que se establece esa llamada, tiene una conexión válida. La misma idea se aplica cuando se trata de bases de datos.
  • 2. Realice una consulta. Con su conocimiento de MySQL, ahora puede comenzar a ejecutar consultas usando SELECT INSERT UPDATE y DELETE además de los otros comandos disponibles.
  • 3. Hacer uso de los datos recuperados. En el caso de recuperar datos de una consulta, puede hacer uso de esos datos. Puede implicar enviar esos datos por correo electrónico a alguien o simplemente enviarlos a la pantalla.
  • 4. Liberar memoria. Una vez que haya terminado con la operación anterior, es hora de liberar la memoria que se utilizó para almacenar los datos del paso 3.
  • 5. Cierre la conexión. Una vez que se completa la conversación entre PHP y la base de datos, debe cerrar la conexión. Es muy parecido a colgar el teléfono una vez finalizada la conversación.

Abrir y cerrar conexiones

Tenemos los 5 conceptos abajo. Ahora veamos los comandos en PHP que hacen que esto suceda. En primer lugar, nos centraremos en los pasos 1 y 5, ya que necesitamos saber cómo abrir y cerrar conexiones antes de poder hacer cualquier otra cosa. Los comandos que necesita son mysqli_connectmysqli_connect_errnomysqli_connect_error, y mysqli_close.

database_connect.php

Esto es lo que obtienes cuando todo va bien, un objeto de tipo mysqli.

Ahora bien, ¿qué pasa cuando las cosas salen mal? Veamos qué pasa si cambiamos las credenciales de cada parámetro.

Anfitrión incorrecto

Usuario incorrecto

Contraseña incorrecta

Nombre de base de datos incorrecto

Es parte de la naturaleza humana saltar directamente a las cosas y decir: “¡Oye! ¡¿Qué podría salir mal?!" Sabemos que las cosas pueden salir mal y lo hacen, por lo que es mejor incluir el código que pueda generar información útil para que comprenda el problema.


Recuperar datos de MySQL usando PHP

Pasaste la fase de conexión. MySQL le dio luz verde y dijo que está listo para comenzar. Ahora que puede ingresar a la base de datos, debe ejecutar algunos comandos para encontrar datos útiles. Vamos a empezar con mysqli_querymysqli_fetch_rowmysqli_free_resultEn este ejemplo, vamos a buscar todas las publicaciones de una base de datos de wordpress y solo enviaremos cada resultado a la pantalla.

Tenga en cuenta que usamos dos estilos para construir la consulta. Si lo desea, puede simplemente construir la consulta en una cadena larga y grande como lo hacemos en $query1, o puede construir incrementalmente la cadena de consulta usando el .=operador como hicimos con $query2Esto a veces ayuda a poder "pensar" su consulta, por así decirlo.

Ahora podemos ver por qué los frameworks PHP son tan populares. Todo este trabajo de piernas se realiza de forma bastante automática para usted. Cuando use PHP sin procesar, necesitará escribir todo este código para hablar y trabajar con la base de datos. Sin embargo, la verdad es que es muy importante que puedas hacer este trabajo usando PHP sin procesar, ya que si no puedes, estarás muerto en el agua si algo sale mal cuando estás usando un framework. Esto se debe a que no tendrá ni la más mínima idea de cómo el marco podría estar manejando el código nativo por usted. Así que repasemos la idea básica de los pasos necesarios para realizar una consulta.


Hacer una conexión a la base de datos

$connectionmysqli_connect$dhost$duser$dpw$dname)


Prueba la conexión

mysqli_connect_errno()

mysqli_connect_error()


Ejecutar una consulta

$resultmysqli_query$connection'select * from wp_posts');


Extraer datos del resultado de la consulta

mysqli_fetch_row$result)


Libera la memoria

mysqli_free_result$result)


Cerrar la conexión a la base de datos

mysqli_close$connection)


Conclusión

Ahí lo tienen amigos, todo lo que necesita para usar PHP nativo para trabajar con una base de datos MySQL. Sí, casi parece un arte perdido en estos días de marcos PHP modernos hipercapaces, pero vale la pena volver a lo básico para asegurarse de que la base sea sólida.