Ryšys su duomenų baze per PDO PHP
Įvykdykime ryšį su DB per PDO. Pirmiausia įrašykime prisijungimo duomenis į kintamuosius:
<?php
$host = 'localhost'; // pagrindinio kompiuterio vardas (dažniausiai toks)
$db = 'test'; // duomenų bazės vardas
$user = 'root'; // vartotojo vardas prisijungimui prie DB
$pass = 'root'; // slaptažodis prisijungimui prie DB
?>
Dabar mums reikia suformuoti eilutę
ypatingu formatu. Šioje eilutėje
mes turime nurodyti naudojamos
DB tipą (dažniausiai, 'mysql'),
pagrindinio kompiuterio vardą ir duomenų bazės vardą:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Tada sukuriame PDO parinkčių masyvą, kurį naudosime darbo procese (kol kas į tai neįsikiskite):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Dabar mes galime įvykdyti prisijungimą prie duomenų bazės, naudodami anksčiau deklaruotus kintamuosius:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Aukščiau pateiktas kodas arba įvykdys prisijungimą
prie duomenų bazės, arba išmes išimtį.
Todėl teisingiau apvynioti prisijungimą
į try-catch konstrukciją:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Pilnas kodas atrodys taip:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // vartotojo vardas prisijungimui prie DB
$pass = ''; // slaptažodis prisijungimui prie DB
$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();
}
?>
Nustatykite ryšį su savo DB pamokoje aprašytu būdu.