Podatkovno zbirko v MySQL oziroma MariaDB ustvarimo s stavkom
CREATE DATABASE. Za takšno opravilo moramo imeti na
strežniku ustrezne pravice.
Kreiranje podatkovne zbirke
V produkcijski aplikaciji podatkovne zbirke običajno ne kreiramo ob vsakem obisku spletne strani, ampak v ločenem namestitvenem ali administrativnem koraku. Zato je smiselno poznati tako osnovni učni zgled kot tudi pristop, ki ga srečamo v resnični aplikaciji.
Osnovna sintaksa za kreiranje nove podatkovne zbirke je:
CREATE DATABASE dbIme;
Če želimo preprečiti napako, kadar baza že obstaja, uporabimo:
CREATE DATABASE IF NOT EXISTS dbIme;
Pri povezavi za kreiranje podatkovne zbirke navadno navedemo le ime strežnika, uporabniško ime in geslo. Imena baze pri povezavi še ne navedemo, ker podatkovna zbirka v tem koraku morda še ne obstaja.
Osnovni primer z mysqli
Spodnji zgled vzpostavi povezavo do strežnika in nato ustvari podatkovno zbirko, če ta še ne obstaja.
<?php
// Podatki za povezavo s strežnikom MySQL oziroma MariaDB
define('DB_SERVER', 'localhost');
define('DB_USER', 'uporabnik');
define('DB_PASS', 'skritoGeslo');
// Povezava do strežnika brez izbire baze
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS);
// Preverjanje povezave
if (!$connection) {
die(
'Povezava s strežnikom ni vzpostavljena: ' .
mysqli_connect_error() .
' (' . mysqli_connect_errno() . ')'
);
}
// SQL stavek za kreiranje baze
$sql = "CREATE DATABASE IF NOT EXISTS dbIme";
// Izvedba ukaza in preverjanje rezultata
if (mysqli_query($connection, $sql)) {
echo "Podatkovna zbirka je pripravljena.";
} else {
echo "Napaka pri kreiranju podatkovne zbirke: " . mysqli_error($connection);
}
// Zapiranje povezave
mysqli_close($connection);
?>
Osnovni primer s PDO
Enako nalogo lahko izvedemo tudi z vmesnikom PDO.
Pri tem pogosto vključimo tudi način poročanja napak z izjemami.
<?php
// Podatki za povezavo
$streznik = 'localhost';
$uporabnik = 'uporabnik';
$geslo = 'skritoGeslo';
try {
// Povezava do strežnika brez izbire baze
$pdo = new PDO("mysql:host=$streznik", $uporabnik, $geslo);
// Vklop izjem pri napakah
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Kreiranje baze, če ta še ne obstaja
$sql = "CREATE DATABASE IF NOT EXISTS dbIme";
// Izvedba SQL ukaza
$pdo->exec($sql);
echo "Podatkovna zbirka je pripravljena.";
}
catch (PDOException $e) {
echo "Napaka pri kreiranju podatkovne zbirke: " . $e->getMessage();
}
?>
Razlika med mysqli in PDO
- mysqli je namenjen delu z MySQL oziroma MariaDB.
- PDO podpira več različnih podatkovnih sistemov.
- Pri PDO napake pogosto obravnavamo z izjemami
tryincatch. - Oba pristopa omogočata izvajanje SQL ukazov za kreiranje baze.
📘Aplikacija Knjige
V priloženi aplikaciji Knjige je korak 02_kreiranjeDB.php namenjen pojasnilu priprave podatkovne zbirke. Ker gre za PDO aplikacijo, je ta zgled še posebej primeren za primerjavo z zgornjima primeroma.
Stran poudari, da se baza praviloma pripravi v ločenem namestitvenem skriptu, ne ob vsakem odpiranju strani.
Navodila za izdelavo aplikacije Knjige
- Najprej vzpostavimo povezavo do strežnika MySQL oziroma MariaDB.
- Pripravimo stavek CREATE DATABASE IF NOT EXISTS.
- Ukaz izvedemo in preverimo rezultat.
- Pri PDO napake navadno obravnavamo z izjemami.
- V resnični aplikaciji takšno opravilo pogosto prestavimo v ločen namestitveni korak.
Pri učenju je smiselno poznati oba pristopa:
- mysqli kot klasičen pristop za MySQL oziroma MariaDB,
- PDO kot bolj prenosljiv pristop,
- aplikacijski pristop, kjer je priprava baze ločen korak.