¿Cuál es la diferencia entre PDO y MySQLi?

¿Cuál es la diferencia entre PDO y MySQLi?

Conceptos
Si me decís que estás desarrollando una aplicación web usando PHP y no me das más datos, cerrando los ojos diría que estás usando una base de datos MySQL y, seguro que en el 80% de los casos acertaría. Es un hecho: PHP y MySQL son un dúo muy común en este mundillo. Lo que no está tan definido es cuál es el mejor modo de conectarse a MySQL utilizando PHP. A priori destacan dos: MySQLiPDO Ambos pueden usarse para armar CRUDs, reportes y cualquier otra necesidad que implique comunicar una aplicación PHP con una base de datos MySQL. Entonces... ¿cómo elegir? Para hacerte (algo) más fácil la tarea te voy a comentar brevemente de qué se trata cada uno. Qué es MySQLi MySQLi es una extensión de PHP creada…
Leer más
¿Qué son las extensiones de PHP?

¿Qué son las extensiones de PHP?

Conceptos
Quién no se cruzó con mensajes como: Debes tener instalada/habilitada la extension en PHP sobre GD Pero... ¿qué es exactamente una extensión de PHP? Para comprenderlo debes conocer un poco cómo funciona PHP internamente. A continuación te daré una visión algo simplificada, si quieres una explicación completa y detallada te recomiendo este excelente tutorial de Diego Lázaro. PHP es un lenguaje interpretado, lo que significa que para ejecutar una aplicación escrita en PHP se requiere de un proceso auxiliar llamado intérprete (Si usas Windows ese proceso será php.exe, si usas Linux o similares será el binario php). Este binario se ha generado a partir de la compilación de una base de código C, la cual, como es abierta, cualquiera con los conocimientos necesarios puede leer y alterar a su antojo.…
Leer más
¿Qué tan «globales» son las variables globales en PHP?

¿Qué tan «globales» son las variables globales en PHP?

Conceptos
Parece una pregunta rara, ¿no? Seguro estás pensando "¿Dónde está la trampa?", ¿cierto? En general se entiende que una variable global es aquella que está presente (es decir, puede ser leída y modificada) en cualquier lugar de un programa. El caso de PHP es algo particular. Para comenzar si hicieras algo como esto: <?php $global = 'Soy una variable global'; function f() { echo '$global dentro de f vale: "'.$global.'"'.PHP_EOL; } echo '$global fuera de f vale: "'.$global.'"'.PHP_EOL; f(); Esperarías ver: $global fuera de f vale: "Soy una variable global" $global dentro de f vale: "Soy una variable global" Y sin embargo, si ejecutás este script verás: $global fuera de f vale: "Soy una variable global" $global dentro de f vale: "" Y, en el reporte de errores encontrarás: PHP…
Leer más
¿Qué puede guardarse en las sesiones PHP?

¿Qué puede guardarse en las sesiones PHP?

Conceptos
Es un hecho: las sesiones de PHP son una fuente de confusión y frustración para muchos desarrolladores. Desde mi punto de vista, el problema es que hay muchos puntos de fallo posible. En este artículo quiero detenerme sobre un punto que, si bien parece simple, tiene sus grises. Todo el mundo pre-supone que las sesiones son una suerte de baúl mágico donde puede guardarse cualquier cosa y, cual juego de rol, acompaña al héroe a donde vaya. La realidad no es tan así. Hay algunos objetos que no pueden ser almacenados en las sesiones PHP. Un ejemplo que veo con frecuencia es código similar a este: include("Conexion.php"); $Conexion = Conectar(); --> Donde conectar es una funcion que conecta a mysql $_SESSION['Conex'] = $Conexion; Y luego, al querer levantar el dato…
Leer más
Por qué se pierden las variables de sesión PHP

Por qué se pierden las variables de sesión PHP

Conceptos
¿Algo de esto te pasó alguna vez? Estoy haciendo un login y todo va perfecto hasta el momento que al subirlo a mi ftp comprueba que el usuario este registrado y que el password este correcto y me crea una variable de session pero en las paginas donde accedo despues del login no reciben esa variable de session y por ello no me deja verlo Tengo unas paginas que intercambian variables de sesion entre ellas y cuando en una pagina en especifico le doy al boton que me redirecciona a otro lugar la session se pierde (ando poniendo session_start() en todos los inicios de las paginas). Durante meses estuvo funcionando bien hasta que los que me proveen el servicio de hosting se les ocurrio cambiar el servidor, a partir de…
Leer más
Cómo funcionan las sesiones en PHP

Cómo funcionan las sesiones en PHP

Conceptos
Una fuente de mucha frustración y confusión para quienes arrancan con PHP es el manejo de sesiones. Hay muchas partes móviles y, a veces, tener todo esto en la cabeza marea... En este artículo intentaré hacer un repaso por cuáles son esas partes y cómo interactúan entre sí de modo que no te queden dudas respecto de cómo usar esta poderosa herramienta. Para qué sirven las sesiones Por supuesto que no puedo avanzar sin antes hablar de lo más importante: ¿para qué sirven las sesiones? O, dicho de otro modo: ¿por qué querrías complicarte la vida entendiendo todo esto? En pocas palabras: las sesiones sirven para compartir información no entre una página y otra (Un formulario HTML y el php que lo procesa por ejemplo), si no entre todas las…
Leer más
Detalles del protocolo HTTP que todo desarrollador PHP debe conocer

Detalles del protocolo HTTP que todo desarrollador PHP debe conocer

Conceptos
Algo que siempre me llamó la atención es cómo en los cursos de PHP (o de programación web en general para el caso), suele pasarse por alto hablar de HTTP. Es cierto que esto puede sonar demasiado teórico y, lo admito, aburrido, sin embargo, es un conocimiento que va a aclararte muchas cosas. Un claro ejemplo de esto es cuando te encontrás con un error como este: PHP Warning: session_start(): Cannot start session when headers already sent Cuando tu código dice algo como: Hola! <?php session_start(); O también: PHP Warning: Cannot modify header information - headers already sent Al entrar a una página con un código como: Hola! <?php setcookie('MyCookie','MyValue'); O Hola! <?php header('Location: pagina2.php'); Seguramente sabrás (tal vez por experiencia o porque "así es como se hace") que las…
Leer más