Adatbázis kapcsolat PDO-n keresztül PHP-ben
Állítsunk fel kapcsolatot az adatbázissal PDO-n keresztül. Először mentjük változókba a hozzáférési adatokat:
<?php
$host = 'localhost'; // a hoszt neve (általában mindig ez)
$db = 'test'; // az adatbázis neve
$user = 'root'; // felhasználónév az adatbázishoz
$pass = 'root'; // jelszó az adatbázishoz
?>
Most egy speciális formátumban kell
elkészítenünk egy stringet. Ebben a stringben
meg kell adnunk az adatbázis típusát
(általában 'mysql'),
a hosztnevét és az adatbázis nevét:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Ezután létrehozunk egy PDO beállítási tömböt, amelyet a munka során használni fogunk (egyelőre ne foglalkozz részletesen velük):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Most már felállíthatjuk a kapcsolatot az adatbázissal, a fent deklarált változók felhasználásával:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
A fenti kód vagy felépíti a kapcsolatot
az adatbázissal, vagy kivételt dob.
Ezért helyesebb a kapcsolatfelépítést
egy try-catch blokkba csomagolni:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
A teljes kód így fog kinézni:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // felhasználónév az adatbázishoz
$pass = ''; // jelszó az adatbázishoz
$charset = 'utf8';
$dsn = "mysql:host=$host; dbname=$db; charset=$charset";
$opt = [
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, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Állítson fel kapcsolatot a saját adatbázisával a leckében ismertetett módon.