<< Databáze firmy | Webové databáze | >>

Komunikace s databází MySQL

  • běžné programovací jazyky umí pracovat a daty v databázi - PHP, C#, , Java, Delphi, Python ...
  • PHP umí pracovat s daty pomocí několika ovladačů (rozšíření)
  • aktuálně se používají dva standardní ovladače - MYSQLi a PDO
    • MYSQL ovladač
      • původní a dnes zastaralý typ ovladače
      • dále nerozvíjen, z PHP 7.+ odstraněn
      • ovladač stále využívají starší weby
    • MYSQLi - MySQL Improved Extension
      • vylepšený standardní PHP ovladač pro přístup k databázi MySQL od PHP 5.+
      • podpora klasického procedurálního i objektového programování komunikace s MySQL
    • PDO - PHP Data Object
      • univerzální standardní PHP ovladač od PHP 5.+
      • podpora objektového přístupu k různým typům databází - MySQL, SQlite, MS SQL, Oracle ...
    • ODBC - Open Database Connectivity
      • univerzální ovladač Microsoftu
      • umožňuje přístup k různým typům databází pomocí různých programovacích jazyků

Postup zpracování dat v PHP

1. Vytvoření připojení k databázi

- zpracování chyb připojení

2. Zaslání SQL příkazu k provedení

zpracování chyb dotazu

3. Zpracování výsledku dotazu

- zpracování chyb výsledku

4. Odpojení od databáze

Vytvoření připojení

  • použití funkce mysqli_connect
  $spojeni = mysqli_connect($server, $uzivatel, $heslo [,$databaze]);
  • použití objektu PDO
  $spojeni = new PDO("mysql:host=localhost;dbname=firma", $uzivatel, $heslo);

Sestavení a zaslání SQL dotazu

  • použití MYSQLi funkce mysqli_query
  $dotaz = "INSERT INTO zamestnanec (jmeno, prijmeni, email)
  VALUES ('Karel', 'Dvorský', 'kdvorsky@gmail.com')";
  $vysledek = mysqli_query($spojeni, $dotaz);
  • použití PDO funkce query
  $vysledek = $spojeni->query($dotaz);

Zpracování výsledku dotazu

  • použití MYSQLi funkce mysqli_fetch_assoc k výpisu řádků tabulky z asociativního pole
 
    while($radek = mysqli_fetch_assoc($vysledek)) {
        echo "Jméno: " . $radek["jmeno"] . " " . $radek["prijmeni"] . " - Mail: " . $radek["email"] . "<br>";
    }
  • použití PDO funkce fetchObj k výpisu řádků tabulky z objektu
    while ($radek = $vysledek->fetch(PDO::FETCH_OBJ)) {
        echo "Jméno: ".$radek->jmeno . " "$radek->prijmeni) . "Mail: " . $radek->mail . "<br>";
    }

Odpojení od databáze

  • použití MYSQLi funkce mysqli_close
    mysqli_close($spojeni);
  • odpojení pomocí PDO
    $spojeni = null;

Příklad komunikace pomocí ovladače MYSQLi

<?php
    $server   = "localhost";
    $uzivatel = "root";
    $heslo    = "";
    $databaze = "firma";
//  Krok 1: Vytvoření připojení
    $spojeni  = mysqli_connect($server, $uzivatel, $heslo, $databaze);
    if(!$spojeni)
    {
      echo 'Spojení s mysql serverem se nepodařilo navázat.<br>';
    }
    else
    {
      echo 'Spojení s mysql serverem bylo úspěšně navázáno.<br>';
//  Krok 2: Sestavení a odeslání dotazu
      mysqli_set_charset($spojeni, "utf8");
      $dotaz = mysqli_query($spojeni, "SELECT * FROM zamestnanec");
      if(!$dotaz)
      {
        echo 'Dotaz vykazuje chybu.<br>';
      }
      else
      {
        echo 'Dotaz byl úspěšně vykonán.<br>';
//  Krok 3: Zpracování výsledku dotazu
        while($radek = mysqli_fetch_assoc($dotaz))
        {
          echo "Jméno: " . $radek["jmeno"] . " " . $radek["prijmeni"] . " - Mail: " . $radek["email"] . "<br>";
        }
      }
    }
//  Krok 4: Odpojení od databáze
    $zavreni = mysqli_close($spojeni);
    if(!$zavreni)
    {
      echo 'Spojení s mysql serverem se nepodařilo ukončit.';
    }
    else
    {
      echo 'Spojení s mysql serverem se podařilo ukončit.';
    }
?>

Příklad komunikace pomocí ovladače PDO

<?php
// Krok 1: Vytvoření připojení
    $spojeni = new PDO("mysql:host=localhost;dbname=firma;charset=utf8","root","");
// Krok 2: Sestavení a odeslání dotazu
    $dotaz   = "SELECT * FROM zamestnanec";
    $vysledek= $spojeni->query($dotaz);
// Krok 3: prochazeni vysledky
    while($radek = $vysledek->fetch(PDO::FETCH_ASSOC))
    {
      echo "Jméno: " . $radek["jmeno"] . " " . $radek["prijmeni"] . " - Mail: " . $radek["email"] . "<br>";
    }
// Krok 4: Odpojení od databáze
    $spojeni = null;
?>

Odkazy

RSS