Na databáze s SQLite – díl 6.

V dnešením dílu se podíváme, jak pomocí PDO se nejen připojíme k databázi, ale provedeme i nějaký příkaz. Vytvoříme jednu tabulku, uložíme do ní jeden záznam. Tento záznam necháme dalším příkazem vypsat do pole.

<?php
 
try {
 
  $db = new PDO('sqlite:nazevdb.db3');
 
  // prikaz
  $sqldotaz = '
 
  -- odebrat, pokud jiz existuje
  DROP TABLE IF EXISTS "tabulka";
 
  -- vytvorit tabulku
  CREATE TABLE "tabulka" (
   "idt" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL ,
   "nazev" VARCHAR NOT NULL ,
   "popis" VARCHAR NOT NULL
  );
 
  -- vlozit hodnotu
  INSERT INTO 'tabulka' (nazev, popis) VALUES ('mujnazev','mujpopis');
 
  '; // konec plneni promenne $sqldotaz
 
  // provedeme pripraveny dotaz
  $db->exec($sqldotaz); 
 
  // nyni si ulozenou hodnotu z databaze nacteme, novy dotaz
  $sqldotaz = "SELECT * from tabulka WHERE idt='1';";
 
  $vysledek = $db->query($sqldotaz);
  $radek_tabulky = $vysledek->fetchall(PDO::FETCH_ASSOC);
 
  $db = NULL;                    // ukoncit spojeni s db
 
} catch(PDOException $e) {
 
  if (isset($db)) {unset($db);}  // ukoncit spojeni s db
  die($e->getMessage());         // ukoncit skript
 
}
 
// výpis výsledku
var_dump($radek_tabulky);
 
?>

Tímto bychom měli mít skript, který by měl provést, co jsme požadovali. Můžete zkusit sami. Pokud by během provádění skriptu nastala chyba, provádění dotazu se v místě chyby ukončí. Defaultně není nastaveno vypisování chyb. Někdy nad tím lze strávit i poměrně hezkou chvíli, než zjistíte, co tomu SQLite někdy vadí, že ne a ne příkaz provést. Na druhou stranu můžete použít například nástroj SQLite Manager, v kterém okamžitě zjistíte, jestli se příkaz provedl nebo ne, případně důvod.

A to je pro dnešek vše.

Tagy: , , ,

O Petr Fořt

Student ČVUT FJFI KSE ASI (Softwarové inženýrství v ekonomii). Zajímám se o počítače (programování, diagnostika chyb hw), hudbu. Mám rád grilování, táboráky, hraní na kytaru a srandu v dobré společnosti.