Σύνδεση με ΒΔ μέσω PDO στην PHP
Ας εκτελέσουμε σύνδεση με τη ΒΔ μέσω PDO. Αρχικά, ας αποθηκεύσουμε τα διαπιστευτήρια σε μεταβλητές:
<?php
$host = 'localhost'; // όνομα host (συνήθως παραμένει το ίδιο)
$db = 'test'; // όνομα ΒΔ
$user = 'root'; // όνομα χρήστη για σύνδεση στη ΒΔ
$pass = 'root'; // κωδικός πρόσβασης για σύνδεση στη ΒΔ
?>
Τώρα πρέπει να δημιουργήσουμε μια συμβολοσειρά
σε ειδική μορφή. Σε αυτή τη συμβολοσειρά
πρέπει να καθορίσουμε τον τύπο της ΒΔ που
χρησιμοποιούμε (συνήθως, 'mysql'),
το όνομα του host και το όνομα της ΒΔ:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Στη συνέχεια, δημιουργούμε έναν πίνακα με επιλογές PDO, που θα χρησιμοποιούμε κατά τη διάρκεια της εργασίας (μην εμβαθύνετε προς το παρόν):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Τώρα μπορούμε να εκτελέσουμε σύνδεση στη βάση δεδομένων, χρησιμοποιώντας τις μεταβλητές που δηλώθηκαν παραπάνω:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Ο παραπάνω κώδικας είτε θα εκτελέσει σύνδεση
στη βάση δεδομένων, είτε θα εγείρει μια εξαίρεση.
Επομένως, είναι πιο σωστό να τυλίξουμε τη σύνδεση
σε μια κατασκευή try-catch:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Ο πλήρης κώδικας θα μοιάζει έτσι:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // όνομα χρήστη για σύνδεση στη ΒΔ
$pass = ''; // κωδικός πρόσβασης για σύνδεση στη ΒΔ
$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();
}
?>
Δημιουργήστε σύνδεση με τη ΒΔ σας με τον τρόπο που περιγράφεται στο μάθημα.