Skip to main content

Introducció

Extensions i Connexió

PHP proporciona diverses extensions per connectar-se a BDD, sent les més importants i utilitzades:

  1. MySQLi (MySQL Improved): Una extensió orientada a objectes i funcional que és l'evolució de l'antic driver MySQL. És la preferida per treballar amb MySQL/MariaDB per la seva velocitat i suport a característiques modernes.

  2. PDO (PHP Data Objects): Aquesta és l'opció més recomanada i versàtil. PDO no és un driver per a una base de dades específica, sinó una capa d'abstracció de dades que permet utilitzar el mateix codi per connectar-se a múltiples tipus de bases de dades (MySQL, PostgreSQL, Oracle, etc.), simplement canviant la cadena de connexió.

Seguretat: Prepared Statements

El xifratge de contrasenyes no serveix de res si la interacció amb la BBDD és insegura. L'aspecte més crític de la seguretat en BBDD és prevenir els atacs d'injecció SQL. Tant MySQLi com PDO permeten l'ús de sentències preparades (Prepared Statements). Aquest mètode garanteix que les dades de l'usuari (variables) s'enviïn al servidor de BDD separadament de la consulta SQL. El servidor de BDD mai interpreta les dades de l'usuari com a part de la lògica de la consulta, tractant-les exclusivament com a valors de camp.

PHP
// Exemple de sentència preparada amb PDO
$stmt = $pdo->prepare("INSERT INTO usuaris (nom, email) VALUES (?, ?)");
$stmt->execute(['David', 'david@exemple.cat']); 
// Les dades s'envien separadament de la consulta, evitant la injecció SQL.

Flux de treball

El flux per interactuar amb una BBDD des de PHP és coherent:

  1. Connexió: Establir una connexió al servidor de BBDD (passant el nom de l'usuari, la contrasenya, i la BBDD).

  2. Preparació: Preparar la sentència SQL.

  3. Execució: Executar la sentència, passant les dades (vinculades).

  4. Processament: Processar el resultat (si és una consulta SELECT), generalment extreient les files en formats d'array o objectes.

  5. Tancament: Tancar la connexió (encara que PHP sovint ho fa automàticament en finalitzar l'script).

PHP actua com un pont eficient i segur que transforma les peticions web en operacions de BBDD i retorna les dades per generar la pàgina web final.