Pri delu s PHP-jem in bazami podatkov je varnost na prvem mestu. Starejši načini povezovanja (kot je `mysql_connect`) so zastareli in nevarni. Danes uporabljamo PDO (PHP Data Objects), ki omogoča varno in objektno delo z bazo.
Glavne prednosti PDO razširitve
- Prepared Statements: Preprečujejo SQL injekcije tako, da ločijo ukaz od podatkov.
- Univerzalnost: Če se odločiš zamenjati MySQL za PostgreSQL, bo večina kode ostala ista.
- Napredno obvladovanje napak: PDO uporablja "Exceptions", kar olajša iskanje hroščev.
Primerjava metod povezovanja
| Lastnost | MySQLi | PDO |
|---|---|---|
| Varnost | Dobra | Odlična (standard) |
| Pripravljeni stavki | Podpira | Podpira (lažja uporaba) |
| Več baz | Samo MySQL | 12 različnih baz |
Koda za varno povezavo (db.php)
To kodo shrani v datoteko db.php in jo vključi v svoje projekte:
$host = 'localhost';
$db = 'tvoja_baza';
$user = 'uporabnik';
$pass = 'geslo';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
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, $options);
// Povezava je vzpostavljena!
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}