ARCHIV |
|||||
Software (10844)
Distribuce (131)
Skripty (697)
Menu
Diskuze
Informace
|
PHP (40) - PHP a vkládání záznamů do databázíZ databází pochopitelně budeme data jednak vybírat, a jednak je do
ní musíme nějak dostat. Dnes si ukážeme, jak vkládat data do MySQL. A vytvoříme si knihu hostů. Trocha SQLV MySQL slouží ke vkládání do tabulky příkaz INSERT. Jeho typická syntaxe je: INSERT INTO [název
tabulky] (sloupec, ...) VALUES (hodnota, ...)
To platí v případě, že data do tabulky vkládáme z kódu a přidá to jeden řádek. Data ovšem můžeme vkládat rovněž z jiné tabulky. Pak je syntaxe následující: INSERT INTO [název
tabulky] (sloupec, ...) SELECT ...
a dodejme, že tato syntaxe může vložit obecně nula až mnoho řádků.
Tabulka, do které vkládáme, musí v databázi již existovat. Pokud by
neexistovala, měli bychom ji nejprve vytvořit příkazem CREATE TABLE.
Příkaz INSERT patří mezi tzv. manipulační příkazy jazyka SQL. To
znamená, že po jeho použití se data v databázi mohou změnit. Což se po
SELECT nikdy nestane, SELECT je tedy naproti tomu výběrový příkaz. Při použití příkazu INSERT si musíme v praxi dát pozor na několik
obecných zásad:
Uvědomte si rovněž, že selhání příkazů měnících data může mít horší
následky než selhání výběrových dotazů. Pokud by například selhal
příkaz ukládající do databáze čas Vašeho příchodu do práce, může to být
daleko horší než selhání dotazu, který zobrazuje Vaše přesčasy. Poznámka pro workoholiky: Vás se to netýká. Insert pomocí PHPJak jste asi čekali, v PHP se přidávací dotazy rovněž realizují
pomocí funkce mysql_query. V případě manipulačních dotazů vrací funkce
mysql_query TRUE pokud se povedla, v ostatních případech vrací FALSE.
Funkce mysql_query tedy nijak nevrací počet vložených záznamů. Ten
můžeme zjistit pomocí jiné funkce, a sice mysql_affected_rows. Ta
funguje tak, že vrátí počet vložených (změněných, odstraněných) řádků
ovlivněných posledním manipulačním dotazem. Pokud poslední manipulační
dotaz selhal, vrací -1. Jako příklad si můžeme vytvořit jednoduchou knihu hostů. Bude to
založeno na třech vzájemně provázaných skriptech, přičemž
Tabulka obsahující zapsané texty bude velmi jednoduchá. Bude obsahovat jeden sloupec pro zápis vzkazu a druhý sloupec, v němž bude uložen čas zápisu. Vytvoříme ji následujícím příkazem CREATE TABLE: CREATE TABLE
`kniha_hostu` ( Sluší se podotknout, že datový typ int budeme používat pro uložení
data záznamu ve formátu unixového časového razítka. To je počet vteřin,
který uplynul od 1.1.1970. Tím pádem se úplně vyhneme použití
databázových datových typů pro uložení datumů a časů. Skript pro výběr a zobrazení záznamů <h1>Naše kniha
hostů</h1> Tady stojí za zmínku pouze to, že náš příkaz SELECT je tak protřelý,
že umí seřadit záznamy podle doby zadání, a to sestupně. Skript pro zadání a kontrolu dat <?
Celý skript obsahuje tři formuláře. Proč tolik? Spodní formulář je "klasický" formulář pro zadání vzkazu. Ten je po odeslání zkontrolován s tím, že pokud je vzkaz příliš krátký nebo příliš dlouhý, je to vráceno uživateli k opravení. Druhý formulář se opět odkazuje na stejnou stránku a je tu proto, aby si uživatel mohl text ke vložení vizuálně odkontrolovat předtím, než jej odešle. Může si třeba všimnout nějaké pravopisné chyby a podobně. Protože nic uživateli nebrání zadat mimo jiné i řádkování, obsahuje skript formátovací příkaz nl2br, který text "rozhodí" do řádků. A konečně třetí formulář odesílá data skriptu 40_modify.php, jež
provede samotné vložení řádku do databáze. Skript pro vložení záznamu do
databáze <? Všimněme si dvou věcí: Za prvé toho, že příkaz insert obsahuje
výsledek funkce time. Ta vrátí unixové časové razítko jakožto celé
číslo, což je přesně to, co potřebujeme. Za druhé - ihned po vložení
řádku se přesouváme na jiný skript! To je důležité ze dvou podstatných
důvodů:
A ještě poznámka: Při korektuře seriálu jsem si všiml, že spousta
uživatelů vkládá do knihy návštěv HTML kód. Soubory byly upraveny tak,
aby se takový kód ignoroval. ZávěrCelou sadu skriptů si můžete vyzkoušet. Jelikož byl příklad trochu rozsáhlý, je
nejdůležitější pochopit, jak spolu skripty pro výběr,
zadání
a akci
vzájemně souvisejí. Pozn.: Protože už tak je to relativně složité, v příkladech jsem se prakticky vůbec nezabýval nějakým formátováním výstupu. V praxi by se to pochopitelně pro reálný provoz muselo trochu učesat.
Související články
Předchozí Celou kategorii (seriál) Další
PHP (1) - Historie a budoucnost
PHP (2) - Jak to funguje PHP (3) - Instalace PHP (4) - Základy syntaxe PHP (5) - Příkaz Echo; formátování kódu PHP (6) - Typy proměnných PHP (7) - Pole PHP (8) - Výrazy, konstanty, inkrementace PHP (9) - Přetypování proměnných PHP (10) - Logické výrazy a operátory PHP (11) - Operátory porovnání; priorita operátorů PHP (12) - Podmínky PHP (13) - Příkazy cyklu PHP (14) - Cyklus for PHP (15) - Funkce PHP (16) - Vyrobme si kalendář PHP (17) - Dokončujeme kalendář PHP (18) - Funkce pro práci s poli PHP (19) - Objekty PHP (20) - Objekty podruhé PHP (21) - Vkládání souborů PHP (22) - Regulární výrazy PHP (23) - Neztraťte se ve funkcích PHP (24) - Pracujeme s formuláři PHP (25) - Formuláře - nikomu nevěřte PHP (26) - Formuláře na sto způsobů PHP (27) - Příklady na formuláře PHP (28) - Chybovati je lidské PHP (29) - Soubory a adresáře PHP (30) - Počitadlo pomocí souborů PHP (31) - Upload a download souborů PHP (32) - Příklad na BLOG PHP (33) - HTTP hlavičky PHP (34) - Úvod do databází PHP (35) - Uložení dat v databázi PHP (36) - Připojujeme se k MySQL PHP (37) - Tvorba tabulek v MySQL PHP (38) - Dolujeme data z MySQL PHP (39) - Zobrazujeme a stránkujeme data PHP (41) - Měníme data v databázích PHP (42) - Odstraňujeme databázová data PHP (43) - MySQL rychleji a rychleji PHP (44) - MySQL ještě rychleji PHP (45) - Jsou data v databázi v bezpečí? PHP (46) - Importujeme data do databáze PHP (47) - Exportujeme data PHP (48) - Práce s binárními daty (BLOB) PHP (49) - Kam kráčíš, MySQL? PHP (50) - Ověřování uživatelů PHP (51) - Přenos dat mezi stránkami PHP (52) - Cookies PHP (53) - Sessions PHP (54) - Dodržování webových standardů PHP (55) - Odesílání e-mailů PHP (56) - Tisk a PDF PHP (57) - XML PHP (58) - XML lépe a radostněji PHP (59) - zapisujeme XML PHP (60) - Rozsáhlejší projekty 1. PHP (61) - Rozsáhlejší projekty 2. PHP (62) - Rozsáhlejší projekty 3. PHP (63) - Rozsáhlejší projekty 4. PHP (64) - Ladění kódu PHP (65) - Ladění kódu 2. PHP (66) - PHP debugger PHP (67) - Zdroje informací o PHP PHP (68) - Stavíme portál PHP (69) - Stavíme portál 2. PHP (70) - Registrace uživatelů na portálu PHP (71) - Přihlašování uživatelů na portál PHP (72) - Hrátky s uživateli PHP (73) - Frontend a backend PHP (74) - Administrátorské rozhraní portálu PHP (75) - Pokračujeme na portále PHP (76) - Zobrazujeme data na portále PHP (77) - Portál, databáze a relace PHP (78) - Informační obsah portálu PHP (79) - Triky s formuláři a ergonomie webu PHP (80) - Administrace diskografie hudebního portálu PHP (81) - Uživatel versus programátor PHP (82) - zabezpečení vstupů formulářů PHP (83) - Ukládání textů písní na hudebním portále PHP (84) - Ještě k registraci PHP (85) - ukládání souborů do databáze na portálu PHP (86) - zobrazení dat a stahování soborů pro registrované PHP (87) - finišujeme portál PHP (88) - provoz ve Windows PHP (89) - cesta do hlubin php.ini PHP (90) - Poťouchlé konfigurační volby PHP (91) - php.ini potřetí a naposledy PHP (92) - funkce pro interakci s operačním systémem PHP (93) - příkazový řádek PHP (94) - GUI PHP (95) - GUI podruhé PHP (96) - (ne)bezpečné PHP PHP (97) - bezpečnost ještě jednou PHP (98) - PHP 5. PHP (99) - Budoucnost PHP PHP (100) - Závěr PHP (101) - Apríl: Příklady z praxe php rewrite Byte order mark a PHP Předchozí Celou kategorii (seriál) Další Ke stažení jako HTML nebo jako PDF.
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera 12.11.2018 21:28 /Redakce Linuxsoft.cz 6.11.2018 2:04 /František Kučera 4.10.2018 21:30 /Ondřej Čečák 18.9.2018 23:30 /František Kučera 9.9.2018 14:15 /Redakce Linuxsoft.cz 12.8.2018 16:58 /František Kučera 16.7.2018 1:05 /František Kučera
Poslední diskuze
31.7.2023 14:13 /
Linda Graham 30.11.2022 9:32 /
Kyle McDermott 13.12.2018 10:57 /
Jan Mareš 2.12.2018 23:56 /
František Kučera 5.10.2018 17:12 /
Jakub Kuljovsky | |||
ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze |