Aprovechando que para unas cosas de la escuela tuve que instalar SQL Server y SQL Server Management Studio (ya que por voluntad propia no lo haría jamás) decidí conectar PHP con SQL Server y hacer un CRUD, es decir, create, read, update y delete de una base de datos de SQL Server.
De esta manera si algún día alguien quiere consumir una base de datos de SQL Server con PHP puede tomar este post como referencia.
Al final tendremos una aplicación web como la siguiente, basada en una plantilla de Bootstrap 4.
SQL Server y PHP
Voy a mostrarte cómo hacer un select, update, insert y delete. Además de prevenir inyecciones SQL.
Recuerda que al final de todo lo que vamos a usar es PDO, una envoltura de las bases de datos que permite intercambiar de un motor a otro cambiando la cadena de conexión.
Nota: todo el código fuente aquí mostrado está actualizado y completo en mi GitHub. Siéntete libre de clonarlo, editarlo, descargarlo o mejorarlo.
La extensión de SQL Server para conectar PHP con SQL Server (qué redundancia) no viene incluida por defecto en PHP, así que debemos descargarla de otro lugar.
En este post voy a mostrar cómo descargar e instalar la extensión de SQL Server para trabajar con PHP usando PDO.
Para comenzar a trabajar con PDO y la base de datos Postgres (también conocida como PostgreSQL) en Windows es necesario habilitar la extensión de PDO Postgres, si no lo hacemos, aparecerá el siguiente error:
PHP Fatal error: Uncaught PDOException: could not find driver
Por ello es que vamos a ver cómo solucionar este problema en Windows con PHP.
Continuación de PDO con PHP para trabajar con bases de datos
En otro post ya hemos visto las bases para trabajar con PHP, PDO y MySQL (también SQLite). Ahora veremos dos cosas que vienen de ayuda al trabajar con PDO:
Seleccionar datos y recorrerlos con un cursor en lugar de obtenerlos como arreglo
Comprobar si un elemento existe en la base de datos
Consultar datos de una tabla usando un cursor – PDO, PHP y MySQL
El primer punto viene de maravilla cuando hablamos de rendimiento. El segundo sirve para muchas cosas, por ejemplo, ver si un usuario ya existe al registrarse o cosas de esas.
El otro día me vi en la necesidad de obtener las tablas que tiene una base de datos de MySQL usando PHP. Es decir, dada una base de datos, obtener una lista (como arreglo) de las tablas que tiene.
Hace algunas semanas o meses escribí una pequeña introducción a Python con SQLite. Ahora es el turno de PHP, un poderoso lenguaje muy popular soportado por casi todos los servidores del mundo. Veamos un ejemplo de PHP, SQLite3 y PDO.
SQLite3 viene como anillo al dedo si nuestra app no será consumida al mismo tiempo (en el mismo instante de tiempo), ya que, recordemos, no es una base de datos multihilo.
Ayer estuve trabajando con un proyecto de PHP en donde misteriosamente no se hacía un insert a una tabla de MySQL. Depurando con $sentencia->errorInfo() me di cuenta de que el problema era un error HY093 de MySQL. Hoy vengo a mostrar la explicación y el origen de este error, así como, claramente, su solución.
Introducción En algún (y seguramente muy mal) momento de nuestra vida puede que nos toque trabajar con este framework que a mi parecer no es tan bueno como su competencia que ya ni parece competencia: Laravel. En fin, como estaba diciendo, puede que trabajemos con CodeIgniter y necesitemos conectarnos a Leer más…