Prakticky s MySQL - 4. díl

Týden se sešel s týdnem a my se po krátké exkursi do světa CGI podíváme skokem z Perlu rovnou na nejlepšího přítele MySQL, PHP. Ukážeme si základní praktiky při spojení těchto dvou fenoménů namísto obecného úvodu, takže je co číst.
Proč PHP tady a teď?

Tento díl našeho seriálu měl být původně o zpracovávání dat z databáze MySQL skrze skript CGI přes DBI, abychom si mohli udělat detailnější náhled na rozdíly mezi Perlem a PHP, rozhodl jsem se pro malou odbočku do světa PHP aby bylo na čems "stavět". Nejprve si tedy povíme a ukážeme základy práce s PHP a MySQL. K tomu nám postačí tento díl. V tom dalším si poté paralelně ukážeme tvorbu jednoho skriptu v Perlu i PHP a výsledkem bude, což mohu prozradit s ohledem na to, že kvality PHP nejsou žádným veřejným tajemstvím, následování seriálu o PHP a výstavba našeho vlastní systému firemní aplikace pro správu běžných denních událostí ve firmě. Perlu se tedy budeme věnovat ještě příště, protože by bylo zbytečné se těmi stejnými problémy a následně rozdíly u Perlu a PHP zabývat odděleně, pokud chceme zvolit pro nás vhodnějšího partnera pro pole vývoje webových aplikací.

Klepněte pro větší obrázek

Spuštěné info o PHP na našem serveru.

Vracíme se k PHP

Personal Home Page - PHP, to je dnes ve všech pádech skloňovaná zkratka. Proč? Tato zjednodušená forma Perlu nemusí být pouze jako CGI, ale i v klasickém HTML generovaném pojetí. Obsahuje výkonnou knihovnu funkcí a programování aplikací API s možností použití coby mezičlánku na serveru. V současnosti nejužívanější verzí je PHP 4. Stavba stránky s PHP je jednoduchá, kód s označením PHP se provede na serveru před vygenerováním výsledné stránky dle kódu PHP, HTML zůstane HTML. Nejjednodušším způsobem aplikace PHP v dokumentech jsou tzv. short tagy <? a ?> , do nichž je kód uzavírán. Nyní se už ale pojďme věnovat základům MySQL a PHP.

Klepněte pro větší obrázek

Ukázka zdrojového kódu PHP a MySQL.

PHP a MySQL

V následující tabulce si vyjádříme přehled funkcí v PHP pro práci s MySQL.

Název funkce Popis
Mysql_connect Otevře připojení k serveru MySQL.
Mysql_pconnect Otevře trvalé připojení k serveru MySQL.
Mysql_select_db Vybere databázi MySQL.
Mysql_close Zavře připojení k serveru MySQL.
Mysql_change_user Změní identitu přihlášeného uživatele bez nutnosti dalšího aktivního připojení.
Mysql_drop_db Odstraní databázi MySQL.
Mysql_db_query Odešle dotaz a určený server MySQL.
Mysql_query Odešle dotaz na již vybraný server MySQL.
Mysql_fetch_array Načte řádek výsledné sady jako asociativní pole.
Mysql_result Vrátí výsledek dotazu.
Mysql_fetch_row Vrátí řádek vybrané sady jako výpočtové pole.
Mysql_affected_rows Vrátí počet ovlivněných řádků operací INSERT, UPDATE nebo DELETE.
Mysql_num_rows Vrátí počet řádků ve výsledné sadě.
Mysql_fetch_field Vrací pole tabulky (sloupec) jako objekt.
Mysql_fetch_lengths Vrací délku každého pole (sloupce) výsledné sady.
Mysql_fetch_object Vrací řádek vysledné sady jako objekt.
Mysql_field_name Vrací název určeného pole (sloupce) výsledné sady.
Mysql_list_fields Vrací seznam polí určené sady.
Mysql_num_fields Vrací počet polí (sloupců) výsledné sady.
Mysql_field_seek Nastavuje ukazatel výsledné sady na index vybraného pole (sloupce).
Mysql_field_type Vrací datový typ vybraného pole (sloupce) výsledné sady.
Mysql_field_flags Vrací příznaky přidružené k určitému poli výsledné sady.
Mysql_insert_id Vrací identifikátor ID generovaný předchozí operací INSERT.
Mysql_data_seek Přesouvá interní ukazatel sady záznamů.
Mysql_free_result Uvolní paměť přidělenou výsledné sadě.
Mysql_errno Vrací číslo chybové zprávy z předchozí operace MySQL.
Mysql_error Vrací text chybové zprávy z předchozí operace MySQL.
Mysql_list_dbs Vrací seznam databází dostupných prostřednictvím vybraného serveru MySQL.
Mysql_list_tables Vrací seznam dostupných tabulek v rámci vybrané databáze MySQL.
Mysql_field_len Vrací délku vybraného pole (sloupce) tabulky.
Mysql_field_table Vrací název tabulky, která obsahuje dané pole (sloupec).
Mysql_tablename Vrací název tabulky daného pole (sloupce).

Klepněte pro větší obrázek

Pro správu databází MySQL se používá PHPMyAdmin, zde v anglické verzi.

Samotné PHP a MySQL v akci

Základním krokem je vždy připojení k databázi. K tomu nám slouží příkaz mysql_connect s touto syntaxí:

Mysql_connect([názevhostitele[:port][:/cesta/k/socketu]], uživatelské jméno, heslo);

V praxi se používá třeba toto:

$connection = mysql_connect("localhost", $user, $heslo);

Tvorba nové databáze je dle následujícího modelu:

$createdb = mysql_create_db("moje");

A abychom mohli plnohodnotně klást dotazy SQL, použijeme dle tohoto návodu příkaz mysql_query:

Mysql_Query(dotaz[, identifikátorpřipojení]);

@$query = mysql_query("SELECT ID FROM Users ORDER BY ID DESC limit 20,40");

if(!$query):
echo"Tak to nevyšlo..";
endif;

Jak si pozorný čtenář všiml, doplnil jsem vykonání příkazu i o kontrolu jeho provedení formou výstupu hodnoty boolean o chybovosti. Další úkonem při práci s databází je její zvolení:

Mysql_select_db(názevdatabáze[, identifikátorpřipojení]);
Mysql_select_db("Users");

Na závěr dnešní lekce se podíváme na tvorbu tabulek a lepší pojetí správy chyb v našich skriptech. Tabulky tvoříme přes příkaz SQL dle tohoto modelu:

@$query = mysql_query("CREATE TABLE Users(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Jmeno VARCHAR(85),
Prijmeni VARCHAR(150),
Vek INT,
Vytvoreno DATE)");

Abychom si naše prozatím lehké ukázky PHP a MySQL trošinku okořenili, ukážeme si správu chyb dotazů SQL:

$sql="CREATE TABLE Users(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Jmeno VARCHAR(85),
Prijmeni VARCHAR(150),
Vek INT,
Vytvoreno D
ATE)";

If($query = mysql_query("$sql")):

Echo "Vyšlo to:)..";
Else:
Echo "Chyba číslo: ".mysql_errno()."<br>Popis chyby: ".mysql_error();
Endif;

Nejprve si do proměnné uložíme sql dotaz, ten poté vyvoláme v rámci podmínkové cyklu if, který když se příkaz nevykoná správně vypíše důvod našeho nezdaru. Pro dnešek bychom povídání o MySQL skončili a příště se podívám již na rozdíly mezi zpracování dat v Perlu a PHP. Dnes se rozloučíme stylově, náhledem na PHP diskusi, kterou si brzo také vytvoříme :-).

Klepněte pro větší obrázek

Diskuse v PHP.

Diskuze (5) Další článek: Finální KDE 3.0

Témata článku: Software, Programování, Vybrané data, Pole, Echo, Přidělený id, MySQL, Mys, Díl, Sloupec


Určitě si přečtěte

Vy a počítač: Virtuální plochy ve Windows mají smysl, používá je třetina čtenářů
Vladislav Kluska
Jak používáte počítačWindows 10Ankety
Nešťastný vývojář ukazuje, proč není dobré být závislý na Googlu
Lukáš Václavík
InternetGoogle
Apple Macbook Air M1: testujeme výkon, výdrž, a hlavně kompatibilitu aplikací [průběžně aktualizováno]

Apple Macbook Air M1: testujeme výkon, výdrž, a hlavně kompatibilitu aplikací [průběžně aktualizováno]

** Testujeme Apple Macbook Air s procesorem M1 ** Zajímá nás nejen výkon, ale zejména kompatibilita aplikací ** Článek je průběžně doplňován na základě vašich dotazů

Jiří Kuruc | 209

Jiří Kuruc
Apple
26 užitečných rozšíření pro Chrome: Naučte prohlížeč nové věci

26 užitečných rozšíření pro Chrome: Naučte prohlížeč nové věci

** Prohlížeč Chrome obsahuje širokou škálu funkcí, neumí ale všechno ** Jeho schopnosti můžete rozšířit pomocí rozšíření ** Vybrali jsme pro vás zajímavé a užitečné doplňky

Karel Kilián | 47

Karel Kilián
Doplňky do prohlížečeChromeProhlížeče
Lépe bylo bez Googlu, přiznal s odstupem bývalý šéf Waze
Markéta Mikešová
WazeGoogle
Nová volitelná aktualizace opravuje více než 40 chyb v operačním systému Windows 10
Karel Kilián
Windows UpdateAktualizaceWindows 10