Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $host = 'localhost';
- $meno = 'test';
- $heslo = 'Wo2mOr0nhBHct6HWfl4H';
- try{
- //vytvorenie spojenia s MySQL serverom
- $spojenie = new mysqli($host, $meno, $heslo);
- //kontrola úspešnosti spojenia s MySQL serverom
- if ($spojenie->connect_error) {
- throw(new Exception('Chyba spojenia: '.$spojenie->connect_error).'<br/>');
- }
- //výber databázy "test"
- if ($spojenie->select_db('test') === TRUE){
- /*
- vytvorenie tabuľky "tabulka1" ak ešte neexistuje
- - používa sa metóda "real_query", pretože SQL dotaz je statický resp. nemenný,
- vykoná len raz, ak daná tabuľka neexistuje a navyše neočakávame vrátenie výsledkov
- */
- if ($spojenie->real_query(
- <<<SQL
- CREATE TABLE IF NOT EXISTS `test`.`tabulka1` (
- `id` INT NOT NULL AUTO_INCREMENT ,
- `nazov` VARCHAR(45) NOT NULL ,
- `cena` FLOAT(5,2) NOT NULL DEFAULT 0.0 ,
- PRIMARY KEY (`id`) )
- ENGINE = MyISAM;
- SQL
- ) === TRUE){
- /*
- bezpečné vloženie dát do tabuľky "tabulka1"
- - používa sa metóda "prepare" na pripravenie dotazu
- - pomocou metódy "bind_param" namiesto znakov "?" sa dosadia príslušne pripravené vstupné hodnoty,
- ich poradie je zhodné s poradím parametrov
- - text "sd" značí, že prvý parameter je textový reťazec a druhý je desatinné číslo
- - celý príkaz sa završí metódou "execute", ktorá celý pripravný dotaz vykoná
- - pripravený dotaz môžeme vykonať viackrát po sebe, zakaždým s inými vstupnými hodnotami
- */
- $nazov = 'produkt1';
- $cena = 123.45;
- $dotaz1 = <<<SQL
- INSERT INTO `test`.`tabulka1` (`nazov`,`cena`) VALUES (?, ?);
- SQL;
- $prikaz1 = $spojenie->prepare($dotaz1);
- if ($prikaz1 !== FALSE){
- if ($prikaz1->bind_param('sd',$nazov, $cena) === TRUE){
- if ($prikaz1->execute() === TRUE){
- echo 'Vstupné hodnoty sa úspešne vložili do tabuľky<br/>';
- }
- $nazov = 'produkt2';
- $cena = 456.78;
- //opätovné vloženie dát, tentoraz ale s inými hodnotami
- if ($prikaz1->execute() === TRUE){
- echo 'Vstupné hodnoty sa úspešne vložili do tabuľky<br/>';
- }
- }
- $prikaz1->close();
- }
- /*
- bezpečný výber dát z tabuľky "tabulka1"
- - vyberú sa položky, ktorých názov sa začína slovom "pro" a zároveň cena je väčšia ako 10
- - používa sa metóda "prepare" na pripravenie dotazu, proces je obdobný ako v predošlom prípade
- - výstupné hodnoty položiek sa uložia do premenných pomocou metódy "bind_result"
- - výsledné položky sa postupne vyberú metódou "fetch" a vypíšu sa do prehľadnej tabuľky
- */
- $nazov = 'pro%';
- $cena = 10.0;
- $dotaz2 = <<<SQL
- SELECT `id`,`nazov`,`cena` FROM `test`.`tabulka1` WHERE (`cena` > ?) AND (`nazov` LIKE ?);
- SQL;
- $prikaz2 = $spojenie->prepare($dotaz2);
- if ($prikaz2 !== FALSE){
- if ($prikaz2->bind_param('ds',$cena, $nazov) === TRUE){
- if ($prikaz2->execute() === TRUE){
- if ($prikaz2->bind_result($id, $nazov, $cena) === TRUE){
- echo <<<HTML
- <table>
- <thead>
- <th>ID</th><th>Názov</th><th>Cena</th>
- </thead>
- HTML;
- while ($prikaz2->fetch() === TRUE){
- echo <<<HTML
- <tr>
- <td>{$id}</td><td>{$nazov}</td><td>{$cena}€</td>
- </tr>
- HTML;
- }
- echo <<<HTML
- </table>
- HTML;
- }
- }
- }
- $prikaz2->close();
- }
- }
- }
- }catch (Exception $vynimka){
- echo $vynimka->getMessage();
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment