Tietokantayhteys PDO:n kautta PHP:ssä
Muodostetaan yhteys tietokantaan PDO:n kautta. Aluksi tallennamme kirjautumistiedot muuttujiin:
<?php
$host = 'localhost'; // isäntänimi (yleensä aina tämä)
$db = 'test'; // tietokannan nimi
$user = 'root'; // käyttäjätunnus tietokantaan
$pass = 'root'; // salasana tietokantaan
?>
Nyt meidän on muodostettava merkkijono
erityisessä muodossa. Tässä merkkijonossa
meidän on määritettävä käytetyn
tietokannan tyyppi (yleensä 'mysql'),
isäntänimi ja tietokannan nimi:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Seuraavaksi luomme PDO-asetusten taulukon, jota käytämme työn aikana (älä syvenny niihin tässä vaiheessa):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Nyt voimme muodostaa yhteyden tietokantaan käyttämällä yllä määriteltyjä muuttujia:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Yllä oleva koodi joko muodostaa yhteyden
tietokantaan tai heittää poikkeuksen.
Sen vuoksi on oikein kääriä yhteys
try-catch-rakenteeseen:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'Tietokanta on yhteydessä';
} catch(PDOException $e) {
echo "Yhteyden muodostaminen epäonnistui: " . $e->getMessage();
}
?>
Koko koodi näyttää tältä:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // käyttäjätunnus tietokantaan
$pass = ''; // salasana tietokantaan
$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 'Tietokanta on yhteydessä';
} catch(PDOException $e) {
echo "Yhteyden muodostaminen epäonnistui: " . $e->getMessage();
}
?>
Muodosta yhteys tietokantaasi oppitunnissa kuvatulla tavalla.