El que no està tan definit és quina és la millor manera de connectar-se a MySQL fent servir PHP. A priori en destaquen dues:MySQLi, PDO
Si em dieu que estàs desenvolupant una aplicació web usant PHP i no em dones més dades, tancant els ulls diria que estàs usant una base de dades MySQL i, segur que en el 80% dels casos encertaria.
És un fet: PHP i MySQL són un duet molt comú en aquest món.
El que no està tan definit és quina és la millor manera de connectar-se a MySQL fent servir PHP. A priori en destaquen dues:MySQLi, PDO
Tots dos poden utilitzar-se per armar CRUDs, reportis i qualsevol altra necessitat que impliqui comunicar una aplicació PHP amb una base de dades MySQL.
Aleshores… com triar?
Per fer-te (una cosa) més fàcil la tasca et comentaré breument de què es tracta cadascú.
En els dos blocs de codi PHP que has compartit, estàs treballant amb dues maneres diferents d'interactuar amb una base de dades: una utilitza PDO (PHP Data Objects) i l'altra utilitza l'extensió mysqli de PHP. Tot i que els dos enfoquen el mateix objectiu (recuperar i mostrar dades de la base de dades), hi ha algunes diferències importants entre les dues. A continuació, detallo les diferències i característiques de cada enfocament.
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
$stmt = $pdo->prepare("SELECT posts.id, posts.title, posts.img, posts.url FROM posts INNER JOIN post_etiquetas ON posts.id = post_etiquetas.post_id WHERE posts.category_id = 23 AND post_etiquetas.etiqueta_id = 131 LIMIT 12");
$stmt->execute();
$pagines = $stmt->fetchAll();
} catch (\PDOException $e) {
echo 'Error de connexió: ' . $e->getMessage();
$pagines = [];
}
Característiques de PDO:
Codi SQL (PDO):
SELECT posts.id, posts.title, posts.img, posts.url FROM posts INNER JOIN post_etiquetas ON posts.id = post_etiquetas.post_id WHERE posts.category_id = 23 AND post_etiquetas.etiqueta_id = 131 LIMIT 12
Copia$conn = new mysqli($host, $user, $pass, $db);
$conn->set_charset("utf8");
if ($conn->connect_error) {
die("Connexió fallida: " . $conn->connect_error);
}
$sql = "SELECT p.* FROM posts p JOIN post_etiquetas pe1 ON p.id = pe1.post_id AND pe1.etiqueta_id = 135 JOIN post_etiquetas pe2 ON p.id = pe2.post_id AND pe2.etiqueta_id = 62 WHERE p.category_id = 23";
$result = $conn->query($sql);
Característiques de mysqli:
Codi SQL (mysqli):
SELECT p.* FROM posts p JOIN post_etiquetas pe1 ON p.id = pe1.post_id AND pe1.etiqueta_id = 135 JOIN post_etiquetas pe2 ON p.id = pe2.post_id AND pe2.etiqueta_id = 62 WHERE p.category_id = 23
En resum:
Ambdós enfocaments són vàlids, però la teva elecció dependrà de les necessitats específiques del projecte i de la teva preferència personal per a l'estil de codi.
Editor del blog
🤖 Què és DeepSeek? Sóc un assistent d'IA avançat i completament GRATUÏT, creat per Deep Seek companyia. Estic aquí per ser el teu company intel·ligent en qualsevol repte!
És un assistent de programació basat en IA creat per GitHub i OpenAI. Funciona dins editors com Visual Studio Code, JetBrains, Neovim i Visual Studio.
Aquest script en Python importa dades d'un fitxer CSV (com `compartit 3tr-2025 - VENDA.csv`) a la base de dades MySQL `autonomo_contabilidad`, utilitzant l'esquema de taules `wp_contabilidad_clientes`, `wp_contabilidad_empleados`, `wp_contabilidad_productos`, `wp_contabilidad_ventas` i `wp_contabilidad_detalles_venta`.
Una manera adequada de nomenar aquesta consulta PDO podria ser "ObtenirPàginesPerCategoriaIEtiqueta" o "LlistarPàginesFiltrades". Aquest nom reflecteix que la consulta selecciona posts associats a una categoria i etiqueta específica. També pot ser útil considerar la claredat de la consulta en el context de l'aplicació, per exemple:
tailwind 5 filtres i paginacio a postslar11
Localhost és l'adreça utilitzada per a provar aplicacions web de manera local, sense necessitat d'un servidor extern. És essencial per a desenvolupadors que treballen amb PHP, MySQL i altres tecnologies backend.