PHP Data Objects (PDO) je lehká, konzistentní a flexibilní metoda pro přístup k databázím z PHP. Nabízí abstraktní vrstvu, která umožňuje pracovat s různými databázovými systémy (MySQL, PostgreSQL, SQLite, atd.) s minimálními změnami kódu. Tento tutoriál vás provede od instalace po pokročilé techniky.
\n\nPDO je obvykle součástí standardní PHP instalace. Pokud ne, budete ho muset nainstalovat pomocí správce balíčků vašeho systému nebo zkompilováním PHP zdrojových kódů s podporou PDO. Pro ověření, zda je PDO instalováno, můžete použít funkci phpinfo()
.
\nHledejte sekci \"PDO\" v výstupu. Pokud PDO není nainstalováno, budete muset upravit konfiguraci vašeho PHP serveru.
\n\nK připojení k databázi použijete metodu PDO::__construct()
. Potřebujete specifikovat DSN (Data Source Name), uživatelské jméno a heslo.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n} catch (PDOException $e) {\n echo 'Připojení k databázi selhalo: ' . $e->getMessage();\n}\n?>
\nyour_database_name
, your_database_host
, your_username
a your_password
nahraďte vašimi daty. PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION
nastavuje PDO aby hlásila chyby jako výjimky, což usnadňuje ladění.
Pro bezpečné provádění dotazů používejte připravená prohlášení (prepared statements). Tím se zabrání SQL injection.
\nprepare(\"SELECT * FROM users WHERE id = ?\");\n$stmt->execute([1]); // Vkládáme hodnotu do připraveného prohlášení\n$user = $stmt->fetch(PDO::FETCH_ASSOC);\nprint_r($user);\n?>
\n?
je placeholder pro hodnotu, která bude vložena do dotazu během provádění. execute()
přijímá pole s hodnotami pro placeholdery. fetch(PDO::FETCH_ASSOC)
vrací výsledek jako asociativní pole.
prepare(\"INSERT INTO users (name, email) VALUES (?, ?)\");\n$stmt->execute(['John Doe', 'john.doe@example.com']);\n?>
\n\nprepare(\"UPDATE users SET email = ? WHERE id = ?\");\n$stmt->execute(['new_email@example.com', 1]);\n?>
\n\nprepare(\"DELETE FROM users WHERE id = ?\");\n$stmt->execute([1]);\n?>
\n\nPro zajištění atomovosti operací s databází používejte transakce.
\nbeginTransaction();\n\ntry {\n // Provádění více dotazů\n $pdo->commit();\n} catch (PDOException $e) {\n $pdo->rollBack();\n echo \"Transakce selhala: \" . $e->getMessage();\n}\n?>
\n\nTento tutoriál představuje základy práce s PDO v PHP. Pro více informací se podívejte do oficiální dokumentace.
Související návody
Jak používat MySQL v PHP
Jak používat PDO v PHP: Bezpečný přístup k databázím
Jak používat MySQL v PHP
Komentáře