Čo je to MySQL ?

  • MySQL je databázový systém používaný pre webové aplikácie
  • MySQL je databázový systém, ktorý beží na serveri
  • MySQL je ideálny pre malé aj veľké aplikácie
  • MySQL je veľmi rýchly, spoľahlivý a ľahko použiteľný
  • MySQL používa štandardné databázy typu SQL
  • MySQL sa kompiluje na mnohých platformách
  • MySQL je zadarmo na stiahnutie a používanie
  • MySQL vyvíja, distribuuje a podporuje spoločnosť Oracle Corporation
  • MySQL je pomenovaná po dcére spoluzakladateľa Montyho Wideniusa: My

Údaje v databáze MySQL sú uložené v tabuľkách. Tabuľka je kolekcia súvisiacich údajov a skladá sa zo stĺpcov a riadkov.

Databázy sú užitočné na kategorické ukladanie informácií. Spoločnosť môže mať databázu s nasledujúcimi tabuľkami:

  • Zamestnanci
  • Produkty
  • zákazníkov
  • objednávky

Databázový systém PHP + MySQL

  • PHP v kombinácii s MySQL sú multiplatformové (môžete ju napríklad vyvíjať v systéme Windows a používať na platforme Unix)

Databázové dotazy

Dotaz je otázka alebo požiadavka.

Môžeme požiadať databázu o konkrétne informácie a vrátiť množinu záznamov.

Pozrite sa na nasledujúci dotaz (pomocou štandardného SQL):

SELECT LastName FROM Employees

Dotaz uvedený vyššie vyberie všetky údaje v stĺpci „Priezvisko“ z tabuľky „Zamestnanci“.

PHP Pripojenie k MySQL

PHP 5 a novšie môžu pracovať s databázou MySQL pomocou:

  • Rozšírenie MySQLi („i“ znamená vylepšené)
  • PDO (údajové objekty PHP)

Skoršie verzie PHP používali rozšírenie MySQL. Toto rozšírenie však bolo v roku 2012 zastarané.


Mám používať MySQLi alebo PDO?

Ak potrebujete krátku odpoveď, bola by to „Čokoľvek chcete“.

MySQLi aj PDO majú svoje výhody:

PDO bude fungovať na 12 rôznych databázových systémoch, zatiaľ čo MySQLi bude fungovať iba s databázami MySQL.

Takže, ak musíte zmeniť svoj projekt na používanie inej databázy, PDO tento proces zjednoduší. Stačí zmeniť reťazec pripojenia a niekoľko otázok. S MySQLi budete musieť prepísať celý kód – vrátane dotazov.

Oba sú objektovo orientované, no MySQLi ponúka aj procedurálne API.

Obe podporujú pripravené vyhlásenia. Pripravené príkazy chránia pred SQL injection a sú veľmi dôležité pre bezpečnosť webových aplikácií.


Príklady MySQL v syntaxi MySQLi aj PDO

V tejto a v nasledujúcich kapitolách demonštrujeme tri spôsoby práce s PHP a MySQL:

  • MySQLi (objektovo orientované)
  • MySQLi (procedurálna)
  • CHOP

Inštalácia MySQLi

Pre Linux a Windows: Rozšírenie MySQLi sa vo väčšine prípadov automaticky nainštaluje, keď je nainštalovaný balík php5 mysql.

Podrobnosti o inštalácii nájdete na: http://php.net/manual/en/mysqli.installation.php


Inštalácia PDO

Podrobnosti o inštalácii nájdete na: http://php.net/manual/en/pdo.installation.php



Otvorte pripojenie k MySQL

Aby sme mohli pristupovať k údajom v databáze MySQL, musíme byť schopní pripojiť sa k serveru:

Príklad (Objektovo orientované MySQLi)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Príklad (Procedúra MySQLi)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Príklad (CHOP)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

Zatvorte pripojenie

Po skončení skriptu sa pripojenie automaticky ukončí. Ak chcete pripojenie predtým ukončiť, použite nasledovné:

Objektovo orientované MySQLi:

$conn->close();

Postup MySQLi:

mysqli_close($conn);

CHOP:

$conn = null;