Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

El uso correcto de MySQLi

101 Aufrufe

Veröffentlicht am

Cómo trabajar correctamente con MySQL en PHP, usando la extensión MySQLi y montando las sentencias SQL para evitar ataques por inyección de SQL.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

El uso correcto de MySQLi

  1. 1. Miguel Angel Alvarez MySQLi: uso correcto @midesweb @EscuelaIT
  2. 2. Qué veremos hoy ▪ Índice o Extensión MySQLi • Interfaz procedimental • Interfaz orientada a objetos o Conexión o Ejecutar sentencias o Preparar sentencias de manera segura
  3. 3. MySQLi
  4. 4. MySQLi extensión de PHP para MySQL Compatible con ambos sistemas gestores de base de datos MySQL o MariaDB
  5. 5. MySQLi extensión de PHP para MySQL En PHP 7 quedó obsoleta la extensión antigua de MySQL, por lo que estamos obligados a usar MySQLi si queremos estar al día. MySQLi se diseñó para MySQL 4.1.3 o superior. (Vamos por MySQL 8) MySQL 4.1.3 y PHP 7 7
  6. 6. MySQLi extensión de PHP para MySQL La documentación de PHP es muy completa y sencilla de entender. https://www.php.net/manual/es/book.mysqli.php * Ojo con los tutoriales de Internet desactualizados! Documentación
  7. 7. MySQLi extensión de PHP para MySQL Recordar que PHP dispone de diversas interfaces de acceso a las bases de datos. - PDO (Objetos de datos de PHP) Capa de abstracción de base de datos de PHP Otros mecanismos de acceso
  8. 8. MySQLi extensión de PHP para MySQL Instalación MampLaragon https://www.apachefriends.org/es/index.html https://laragon.org/ https://www.mamp.info/en/
  9. 9. Interfaces
  10. 10. Interfaces de la extensión MySQLi - Procedimental: Un API basado en funciones - Objetos: Un API basado en programación orientada a objetos Dos interfaces distintas
  11. 11. Interfaz Procedimental Interfaz basada en funciones - Es más sencilla para muchos desarrolladores, ya que no requiere entender conocimientos de objetos. - Las migraciones de la interfaz antigua de MySQL a MySQLi son más directas.
  12. 12. Interfaz Procedimental Interfaz basada en funciones
  13. 13. Interfaz Objetos Interfaz basada en objetos - Desarrolladores acostumbrados a la programación orientada a objetos la pueden preferir. - Nos ahorra el envío de parámetros a las funciones, como la referencia de la conexión a la base de datos. - No existen diferencias en cuanto a rendimiento.
  14. 14. Interfaz Objetos Interfaz basada en objetos
  15. 15. Conexiones
  16. 16. Conexiones Variables de entorno Es interesante usar variables de entorno en las conexiones. https://github.com/vlucas/phpdotenv Una librería para gestión de variables de entorno . También es importante gestionar posibles errores de las conexiones
  17. 17. Conexiones Separación del código En la medida de lo posible es importante separar el código por responsabilidades. Podemos crear archivos que se encarguen de los accesos a la base de datos y aislar el resto del código de la aplicación de la complejidad de acceso a los datos.
  18. 18. Preparar sentencias
  19. 19. Preparar sentencias Inyección de SQL Es un ataque mediante el cual se puede conseguir ejecutar cualquier sentencia o sentencias arbitrarias, definidas por un atacante, en la base de datos. PHP 7 introdujo un mecanismo de control automático de la inyección de SQL, no obstante, las sentencias preparadas nos aseguran que este tipo de ataques no se puedan llegar a producir.
  20. 20. Preparar sentencias Preparar la sentencia Creamos la sentencia con los espacios para colocar las variables que queremos introducir.
  21. 21. Preparar sentencias Bindear los datos Asociamos los datos que queremos introducir en los "huecos" de la sentencia preparada.
  22. 22. Preparar sentencias Ejecutar la sentencia Ejecutamos la sentencia preparada para que se produzca la operación sobre la base de datos. Podemos ejecutar la sentencia varias veces, con nuevos datos si se desea.
  23. 23. Gracias Miguel Angel Alvarez insight@insightcreativos.com 649 76 76 31 @midesweb

×