podrobný obsah
Transkript
VELKÁ KNIHA PHP a MySQL 5 KOMPENDIUM ZNALOSTÍ PRO ZAČÁTEČNÍKY I PROFESIONÁLY /přepracované, doplněné a rozšířené vydání publikace z roku 2005/ W. Jason Gilmore Beginning PHP and MySQL 5: From Novice to Professional, Second Edition Copyright © 2006 by W. Jason Gilmore Original English language published Apress L.P., 2560 Ninth Street, Suite 219, Berkeley, CA 9 47 10 USA. Copyright © 2006 by Apress L.P. CZECH language edition copyright © 2006 by ZONER software, s.r.o. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Apress L.P. Originál v anglickém jazyce vydal Apress L.P., 2560 Ninth Street, Suite 219, Berkeley, CA 9 47 10 USA. Copyright © 2006 Apress L.P. České vydání Copyright © 2006 ZONER software s.r.o.. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována nebo předávána žádnou formou nebo způsobem, elektronicky ani mechanicky, včetně fotokopií, natáčení ani žádnými jinými systémy pro ukládání bez výslovného svolení Apress L.P. Velká kniha PHP a MySQL 5 kompendium znalostí pro začátečníky i profesionály přepracované, doplněné a rozšířené vydání publikace z roku 2005 Autor: W. Jason Gilmore Copyright © ZONER software, s.r.o. Vydání první v roce 2007. Všechna práva vyhrazena. Zdrojový kód příkladů uvedených v knize je k dispozici na adrese http://www.apress.com v sekci Source Code nebo na adrese http://www.zonerpress.cz v sekci Download. Zoner Press KATALOGOVÉ ČÍSLO: ZR617 ZONER software, s.r.o. Nové sady 18, 602 00 Brno Překlad: RNDr. Jan Pokorný Odpovědný redaktor: Miroslav Kučera, Pavel Kristián Šéfredaktor: Ing. Pavel Kristián DTP: Filip Božoň © Cover foto: Jiří Heller, HELLER.CZ s.r.o., www.heller.cz © Cover a layout: Ing. Pavel Kristián Informace, které jsou v této knize zveřejněny, mohou byt chráněny jako patent. Jména produktů byla uvedena bez záruky jejich volného použití. Při tvorbě textů a vyobrazení bylo sice postupováno s maximální péčí, ale přesto nelze zcela vyloučit možnost výskytu chyb. Vydavatelé a autoři nepřebírají právní odpovědnost ani žádnou jinou záruku za použití chybných údajů a z toho vyplývajících důsledků. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována ani distribuována žádným způsobem ani prostředkem, ani reprodukována v databázi či na jiném záznamovém prostředku či v jiném systému bez výslovného svolení vydavatele s výjimkou zveřejnění krátkých částí textu pro potřeby recenzí. Veškeré dotazy týkající se distribuce směřujte na: Zoner Press ZONER software, s.r.o. Nové sady 18, 602 00 Brno tel.: 532 190 883, fax: 543 257 245 e-mail: [email protected] http://www.zonerpress.cz ISBN 80-86815-53-6 Kniha je věnována památce Dr. Giovanni „Nino“ Sanzi (1929-2004). Addio, caro amico. Stručný obsah Kapitola 1 Kapitola 2 Kapitola 3 Kapitola 4 Kapitola 5 Kapitola 6 Kapitola 7 Kapitola 8 Kapitola 9 Kapitola 10 Kapitola 11 Kapitola 12 Kapitola 13 Kapitola 14 Kapitola 15 Kapitola 16 Kapitola 17 Kapitola 18 Kapitola 19 Kapitola 20 Kapitola 21 Kapitola 22 Kapitola 23 Kapitola 24 Kapitola 25 Kapitola 26 Kapitola 27 Kapitola 28 Kapitola 29 Kapitola 30 Kapitola 31 Kapitola 32 Kapitola 33 Kapitola 34 Kapitola 35 Kapitola 36 Kapitola 37 Úvod do PHP Instalace a konfigurace Apache a PHP Základy PHP Funkce Pole Objektově orientované programování v PHP Vyspělé schopnosti OOP Zpracování chyb a výjimek Řetězce a regulární výrazy Práce se systémem souborů a s operačním systémem PEAR Datum a čas Formuláře a navigační pomůcky Autentizace Upload souborů Networking PHP a LDAP Zpracovatelé sezení Šablony se Smarty Webové služby Bezpečné programování v PHP SQLite Úvod do PDO Úvod do MySQL Instalace a konfigurace MySQL Klienti MySQL Ukládací enginy MySQL a datové typy Zabezpečení MySQL Rozšíření mysql v PHP Rozšíření mysqli v PHP Uložené rutiny Triggery MySQL Pohledy Databázové dotazy v praxi Indexy a vyhledávání Transakce Import a export dat Rejstřík 31 39 69 115 127 153 177 197 211 247 277 289 319 341 359 373 409 431 451 475 515 533 551 569 579 603 625 655 681 709 733 755 767 779 801 817 831 845 Obsah O autorovi O odborném recenzentovi Poděkování 25 25 26 Pošlete nám váš názor Zdrojové soubory Úvod 27 27 29 Kapitola 1 Úvod do PHP Historie PHP 4 PHP 5 31 31 32 34 Všeobecné rysy jazyka Upotřebitelnost Vyspělost Možnosti 35 35 36 36 Cena Shrnutí 37 37 Kapitola 2 Instalace a konfigurace Apache a PHP 39 Instalace Obstaráme si distribuce Proces instalace Otestování instalace Přizpůsobení vybudované distribuce pro Unix Přizpůsobení vybudované distribuce pro Windows Běžné potíže Prohlížení a stažení dokumentace 39 39 41 46 47 47 48 48 Konfigurace Správa konfiguračních direktiv PHP Konfigurační direktivy PHP Shrnutí 49 49 51 68 Kapitola 3 Základy PHP Únik k PHP Výchozí syntax Krátké značky Styl <script> 69 69 70 70 71 Obsah 8 Styl ASP Vkládání několika bloků kódu 71 71 Komentáře Syntax jediného řádku z C++ Syntax shellu Komentář na několika řádcích ve stylu C 72 72 72 72 Výstup print() echo() printf() sprintf() 73 73 74 74 75 Typy dat Skalární datové typy Složené datové typy Resource Přetypování Žonglování s typy Funkce vztahující se k typům 76 76 77 79 80 81 82 Identifikátory Proměnné Deklarace proměnné Obor proměnné Superglobální proměnné PHP Proměnné proměnné 83 84 84 85 88 93 Konstanty Výrazy Operandy Operátory 93 94 94 94 Interpretace řetězců Uvozovky Apostrofy heredoc 100 100 101 102 Řídící struktury Příkazy, které řídí vykonávání Podmínkové příkazy Příkazy cyklu Příkazy pro vkládání souborů 102 103 104 106 111 Shrnutí 113 Velká kniha PHP a MySQL 5 Kapitola 4 9 Funkce 115 Volání funkcí Vytvoření funkce Předávání argumentů hodnotou Předávání argumentů odkazem Výchozí hodnoty argumentů Nepovinné argumenty Návratové hodnoty funkcí Vracení více hodnot najednou Vnořování funkcí Rekurzivní funkce Funkce jako proměnná 115 116 116 117 118 118 119 120 120 121 123 Knihovny funkcí Shrnutí 124 125 Kapitola 5 Pole 127 Co je pole? Výstup polí Jak se vytvoří pole Test, zda se jedná o pole 128 129 130 132 Přidávání a odstraňování prvků pole Vyhledávání prvků v poli 133 134 Procházení polí Zjištění velikosti a jedinečných hodnot pole Setřídění prvků polí Kombinace, sloučení, extrakce a porovnání Další užitečné funkce pro práci s poli Shrnutí 136 140 141 146 150 152 Kapitola 6 Objektově orientované programování v PHP 153 Zisky plynoucí z OOP Zapouzdření Dědění Polymorfizmus 154 154 155 155 Klíčové pojmy OOP Třídy Objekty Členské proměnné 156 156 157 157 Obsah 10 Vlastnosti Konstanty Metody 160 163 163 Rada pro typ Konstruktory a destruktory Konstruktory Destruktory 167 168 168 171 Statické členy tříd Klíčové slovo instanceof Pomocné funkce Automatické načítání objektů Shrnutí 172 173 173 175 176 Kapitola 7 Pokročilé schopnosti OOP 177 Schopnosti OOP nepodporované v PHP Klonování objektů Příklad klonování Metoda _ _clone() 178 178 178 180 Dědění Dědění třídy Dědění a konstruktory 181 181 183 Rozhraní Dědění jednoho rozhraní Implementace více rozhraní 185 186 187 Abstraktní třídy Reflexe Shrnutí 188 189 195 Kapitola 8 Zpracování chyb a výjimek 197 Konfigurační direktivy Protokolování chyb Zpracování výjimek Proč je zpracování výjimek prospěšné Implementace zpracování výjimek v PHP 198 201 203 203 205 Shrnutí 209 Kapitola 9 Řetězce a regulární výrazy Syntaxe se složenými závorkami {} 211 211 Velká kniha PHP a MySQL 5 11 Regulární výrazy Syntax regulárních výrazů ve stylu POSIX Syntax regulárních výrazů ve stylu Perlu 212 213 218 Další funkce pro práci s řetězci Určování délky řetězce Porovnávání dvou řetězců Úpravy velikosti písmen Převádění řetězců do HTML a z HTML Alternativy pro funkce regulárních výrazů Doplňování a zkracování řetězce Počítání znaků a slov 225 226 226 228 229 234 241 242 Využití předností balíku Validate_US PEAR Instalace balíku Validate_US Jak se používá balík Validate_US 244 245 245 Shrnutí 246 Kapitola 10 Práce se systémem souborů a s operačním systémem 247 Soubory a adresáře Analýza cest k adresářům Typy souborů a odkazy Zjišťování velikosti souboru, adresáře a disku Časy posledního přístupu a modifikace 248 248 250 253 256 Vlastnictví souborů a povolení Vstupní a výstupní (I/O) operace se soubory Pojem prostředek Znak pro nový řádek Konec souboru Otevření a uzavření souboru Čtení ze souboru Přesouvání ukazatele souboru Zapisování do souboru Čtení obsahu adresářů 257 259 259 260 260 260 262 267 268 268 Vykonávání příkazů shellu Vykonávání programů na systémové úrovni Shrnutí 270 271 275 Kapitola 11 PEAR Populární balíky PEAR Konverze číselných formátů 277 277 279 Obsah 12 Instalace a aktualizace PEAR Instalace PEAR PEAR a hostitelské firmy Aktualizace PEAR 280 280 282 282 Jak se pracuje s manažerem balíků PEAR Jaké balíky jsou nainstalované Jak získáte další informace o nainstalovaném balíku Instalace balíku Jak se pracuje s balíkem Modernizace balíku Odinstalování balíku Přechod na starší verzi balíku 282 283 283 284 286 287 287 288 Shrnutí 288 Kapitola 12 Datum a čas 289 Časová známka Unixu Knihovna PHP pro datum a čas Bojové umění „Date Fu“ Zobrazení lokalizovaného data a času Zobrazení data poslední modifikace webové stránky Zjištění počtu dní aktuálního měsíce Určení data vzdáleného x dní od aktuálního data Vytvoření kalendáře 289 290 297 297 301 301 302 303 PHP 5.1 Základní informace o Date Konstruktor Date Accessory a mutátory Validátory Manipulační metody 306 307 307 308 311 311 Shrnutí 317 Kapitola 13 Formuláře a navigační pomůcky PHP a webové formuláře Jednoduchý příklad Předávání dat formuláře do funkce Práce s vícehodnotovými komponentami formuláře Generování formulářů s PHP Automatický výběr na formuláři PHP, webové formuláře a JavaScript 319 320 320 321 322 324 326 327 Velká kniha PHP a MySQL 5 13 Navigační pomůcky Uživatelsky přívětivé URL Navigační stopy Vytváření vlastních zpracovatelů chyb 329 329 333 337 Shrnutí 339 Kapitola 14 Autentizace 341 Pojmy autentizace HTTP Autentizace PHP Proměnné autentizace Různé metodologie autentizace Autentizace založená na IP adrese Využití PEAR: Auth_HTTP 341 342 343 344 348 349 Administrace přihlašování uživatelů Ustanovení hesel Testování jak snadno lze uhádnout heslo s knihovnou CrackLib Jednorázové URL a obnova hesla 352 352 354 356 Shrnutí 358 Kapitola 15 Upload souborů 359 Nahrávání souborů přes protokol HTTP Nahrávání na server s PHP Direktivy PHP pro nahrávání souborů a pro prostředky Pole $_FILES Funkce PHP pro nahrávání na server Chybové zprávy týkající se nahrávání Ukázky nahrávání souborů 359 360 360 362 363 364 365 Dejte přednost PEAR: HTTP_Upload Instalace HTTP_Upload Získáme informace o nahraném souboru Přesun nahraného souboru na cílové umístění Nahrávání více souborů najednou 368 368 369 370 370 Shrnutí 371 Kapitola 16 Networking DNS, služby a servery DNS Služby 373 374 374 377 Obsah 14 Zřizování soketových připojení 378 Pošta Konfigurační direktivy Odeslání e-mailu, který obsahuje jen čistý text Odeslání e-mailu s dodatečnými záhlavími Odeslání e-mailu více příjemcům Odeslání e-mailu formátovaného jako HTML Jak se odešle příloha 380 380 381 382 382 383 384 IMAP, POP3 a NNTP Požadavky Zřízení a uzavření připojení Další informace o poštovních přihrádkách a poště Získávání zpráv Sestavení zprávy Odeslání zprávy Administrace poštovní přihrádky Administrace zpráv 385 385 386 388 390 397 398 398 400 Proudy Obaly proudů a kontexty Filtry proudů 400 401 402 Běžné síťové úkoly Zvonění na server Skener portu Konvertor podsítě Testování šířky pásma uživatele 404 404 405 405 407 Shrnutí 408 Kapitola 17 PHP a LDAP 409 Úvod do LDAP Další informace o LDAP 410 411 PHP a LDAP Připojení k serveru LDAP Vázání k serveru LDAP Uzavření připojení k serveru LDAP Získávání dat LDAP Práce s hodnotami položek Počet získaných položek Získávání atributů Řazení a porovnávání položek LDAP 411 411 412 413 414 415 416 417 420 Velká kniha PHP a MySQL 5 Práce s položkami Dealokace paměti Vkládání dat LDAP Aktualizace dat LDAP Odstraňování dat LDAP Konfigurační funkce Znakové sady Práce s distingovaným názvem Zpracování chyb Shrnutí Kapitola 18 Zpracovatelé sezení 15 421 423 424 425 426 426 428 428 429 430 431 Co je to zpracování sezení? Cookies Přepisování URL Proces zpracování sezení 431 432 432 432 Konfigurační direktivy Klíčové pojmy Startování sezení Likvidace sezení Získávání a nastavování ID sezení Vytváření a odstraňování proměnných sezení Zakódování a dekódování dat sezení 433 438 438 439 439 440 440 Praktické ukázky zpracování sezení Automatizované přihlašování Seznam naposled prohlížených dokumentů 442 442 444 Vytváření vlastních zpracovatelů sezení Včlenění vlastních funkcí sezení do logiky PHP Vlastní zpracovatelé sezení založení na MySQL 445 446 447 Shrnutí 450 Kapitola 19 Šablony se Smarty Co je stroj na šablony? Úvod do Smarty Instalace Smarty Práce se Smarty Prezentační logika Smarty Komentáře 451 452 453 454 456 458 458 Obsah 16 Modifikátory proměnné Řídící struktury Speciální příkazy 458 461 465 Vytváření konfiguračních souborů Odkazy na konfigurační proměnné 468 469 CSS v součinnosti se Smarty Ukládání stránek do cache Doba života stránek uložených v cache Eliminace režijních nákladů na zpracování s is_cached() Vytvoření několika cache pro jednu šablonu Několik slov závěrem k ukládání do cache 470 471 472 472 473 474 Shrnutí 474 Kapitola 20 Webové služby 475 Proč webové služby? Real Simple Syndication Syntax RSS MagpieRSS 476 478 480 481 SimpleXML Funkce SimpleXML Metody SimpleXML 488 489 490 SOAP NuSOAP Rozšíření SOAP PHP 5 493 494 503 Použití klienta C# s webovou službou PHP Shrnutí 512 514 Kapitola 21 Bezpečné programování v PHP 515 Bezpečná konfigurace PHP Bezpečný mód Další konfigurační direktivy vztahující se bezpečnému módu 516 516 518 Skrývání podrobností konfigurace Skrytí Apache a PHP 520 520 Skrývání citlivých dat Dbejte řádně o kořen dokumentů Zamítněte přístup k souborům s určitými příponami 522 522 523 Desinfekce dat uživatele Vymazání souborů 523 524 Velká kniha PHP a MySQL 5 Skriptování přes weby Desinfekce vstupu od uživatele: řešení 17 524 526 Šifrování dat Šifrovací funkce PHP mhash MCrypt 528 528 529 530 Shrnutí 532 Kapitola 22 SQLite 533 SQLite Instalace SQLite Práce v rozhraní příkazového řádku SQLite 533 534 534 Knihovna SQLite PHP Direktivy SQLite Jak se otevře připojení Vytvoření tabulky v paměti Uzavření připojení Dotazy na databázi Analýza sad výsledků Získávání podrobností o sadě výsledků Manipulace s ukazatelem sady výsledků Informace o struktuře tabulky Práce s binárními daty Vytváření a překrývání funkcí SQLite Vytváření agregačních funkcí 536 536 536 537 538 538 539 542 544 545 546 547 548 Shrnutí 549 Kapitola 23 Úvod do PDO Zase další databázová abstraktní vrstva? Jak se pracuje s PDO Instalace PDO Podpora databází v PDO Připojení k databázovému serveru a výběr databáze Získávání a nastavování atributů Zpracování chyb Vykonání dotazu Připravené příkazy Získávání dat Nastavování vázaných sloupců 551 552 553 554 554 555 557 557 558 560 564 567 Obsah 18 Transakce Shrnutí Kapitola 24 Úvod do MySQL 568 568 569 Proč je MySQL tak populární? Flexibilita Výkon Flexibilní licenční možnosti (Hyper) aktivní komunita uživatelů 569 570 570 572 573 MySQL 4 MySQL 5 Prominentní uživatelé MySQL craigslist Yahoo! Finance Wikipedia 574 575 575 575 576 576 Shrnutí 577 Kapitola 25 Instalace a konfigurace MySQL 579 Licence PHP a MySQL Linux Windows 579 580 580 Stažení MySQL Instalace MySQL Linux Windows 580 582 582 586 Nastavte heslo administrátora MySQL Start a zastavení MySQL Ruční ovládání démona Automatické startování a zastavování MySQL 589 589 589 591 Konfigurace a optimalizace MySQL mysqld_safe Konfigurační a optimalizační parametry Soubor my.cnf 594 594 595 599 Shrnutí 602 Kapitola 26 Klienti MySQL 603 Standardní volby klientů Volby týkající se připojení 603 604 Velká kniha PHP a MySQL 5 19 Všeobecné volby mysql Klíčové volby mysql Práce s mysql v interaktivním režimu Prohlížení konfiguračních proměnných a stavu systému Práce s mysql v dávkovém režimu Užitečné tipy k mysql 605 605 606 608 610 611 612 mysqladmin Příkazy mysqladmin 614 614 Další utility mysqldump mysqlshow mysqlhotcopy mysqlimport myisamchk mysqlcheck 615 615 616 616 617 618 619 Klientské programy jiných výrobců Administrátor MySQL phpMyAdmin Prohlížeč dotazů MySQL Navicat 619 619 621 622 624 Shrnutí 624 Kapitola 27 Ukládací enginy MySQL a datové typy 625 Ukládací enginy InnoDB MyISAM MEMORY MERGE BDB FEDERATED ARCHIVE CSV EXAMPLE BLACKHOLE Časté otázky týkající se ukládacích enginů 625 626 627 629 631 631 631 633 633 634 634 634 Datové typy a atributy Datové typy Datové typy pro datum a čas 636 636 636 Obsah 20 Datové typy pro řetězce Atributy datových typů 640 642 Práce s databázemi a s tabulkami Práce s databázemi Práce s tabulkami Změny ve struktuře tabulky Databáze INFORMATION_SCHEMA 645 645 647 650 650 Shrnutí 653 Kapitola 28 Zabezpečení MySQL 655 Co byste měli udělat nejdřív Zabezpečení démona mysqld Systém přístupových oprávnění MySQL Jak systém přístupových oprávnění funguje Kde jsou informace o přístupových oprávněních uložené? 656 657 657 657 659 Správa uživatelů a přístupových oprávnění Prohlížení oprávnění 668 675 Limity na konzumaci prostředků uživateli Bezpečná připojení MySQL Volby příkazu GRANT, které se týkají bezpečných připojení Volby SSL 675 676 677 678 Shrnutí 680 Kapitola 29 Rozšíření mysql v PHP 681 Předběžné informace Jak se zpřístupní rozšíření mysql na Linuxu Jak se zpřístupní rozšíření mysql na Windows Přístupová oprávnění uživatelů Ukázková data 681 681 682 682 682 Příkazy MySQL v PHP Zřízení a uzavření připojení Uložení informací o připojení do separátního souboru Zabezpečení informací o připojení 683 683 685 685 Volba databáze Dotazy na MySQL Získávání a zobrazování dat Vkládání dat Modifikace dat 686 686 688 691 693 Velká kniha PHP a MySQL 5 21 Odstraňování dat Vybrané řádky a ovlivněné řádky Získávání informací o databázi a tabulce Získávání informací o sloupcích Prohlížení vlastností tabulky Získávání informací o chybách 695 696 697 698 702 703 Pomocné funkce Shrnutí 704 707 Kapitola 30 Rozšíření mysqli v PHP 709 Předběžné informace Jak se zpřístupní rozšíření mysqli na Unixu Jak se zpřístupní rozšíření mysqli na Windows Ukázková data 710 710 710 711 Jak se pracuje s rozšířením mysqli Připojení k serveru MySQL Zprávy o chybách připojení Výběr databáze MySQL Uzavření připojení 711 711 712 715 716 Dotazy Vykonání dotazu Zotavení paměti dotazu Příprava sady výsledků pro zpracování Analýza výsledků Vykonávání několika dotazů za sebou Připravené příkazy 716 716 718 718 720 723 724 Databázové transakce Shrnutí 731 732 Kapitola 31 Uložené rutiny 733 Měli bychom používat uložené rutiny? Přednosti uložených rutin Nevýhody uložených rutin 734 734 734 Jak MySQL implementuje uložené rutiny Tabulky přístupových oprávnění uložených rutin Jak se vytvoří uložená rutina Deklarace a nastavování proměnných Jak se vykoná uložená rutina 735 735 737 739 741 Obsah 22 Uložené rutiny složené z několika příkazů Volání rutiny z jiné rutiny Modifikace uložené rutiny Odstranění uložené rutiny Prohlížení stavu rutiny Prohlížení syntaxe rutiny Podmínky a zpracovatelé 741 748 749 749 750 751 751 Integrace rutin do webových aplikací Vytvoření rozhraní pro bonus zaměstnanců Získávání více řádků 752 752 753 Shrnutí 753 Kapitola 32 Triggery MySQL 755 Úvod do triggerů Proč používat triggery? Vykonání akce před událostí Vykonání akce po události Triggery spouštěné „před“ versus triggery spouštěné „po“ 755 756 756 757 758 Podpora triggerů v MySQL Jak se vytvoří trigger Prohlížení existujících triggerů Modifikace triggeru Odstranění triggeru Kaskádové triggery 758 759 761 762 762 763 Integrace triggerů do webových aplikací Shrnutí 764 766 Kapitola 33 Pohledy 767 Úvod do pohledů Podpora pohledů v MySQL Vytváření a vykonávání pohledů Prohlížení informací o pohledu Modifikace pohledu Odstranění pohledu Aktualizace pohledů 768 768 769 774 776 776 776 Začlenění pohledů do webových aplikací Shrnutí 777 778 Velká kniha PHP a MySQL 5 Kapitola 34 Databázové dotazy v praxi 23 779 Ukázková data Vytváření tabulárních výstup s PEAR Instalace HTML_Table Jak se vytvoří jednoduchá tabulka Vytváření lépe čitelného výstupu řádků Vytvoření tabulky z dat databáze Zobecnění výstupního procesu 780 780 781 781 782 784 785 Seřazení výstupu Vytvoření výstupu se stránkováním Číslování stránek výpisu Poddotazy Porovnávací operace s poddotazy Určování existence s poddotazy Údržba databáze pomocí poddotazů Používání poddotazů v PHP 787 788 791 793 794 794 796 796 Kurzory Základy práce s kurzory Vytvoření kurzoru Otevření kurzoru Práce s kurzorem Uzavření kurzoru Jak se kurzor používá s PHP 797 797 798 798 798 799 799 Shrnutí 800 Kapitola 35 Indexy a vyhledávání 801 Indexování databází Primární klíče Jedinečné indexy Normální indexy Fulltextové indexy Doporučené praktiky pro práci s indexy 801 802 803 804 806 810 Vyhledávání pomocí formuláře Jednoduché hledání Rozšíření vyhledávacích možností Fulltextové vyhledávání 811 811 812 814 Shrnutí 815 Obsah 24 Kapitola 36 Transakce 817 Co je transakce? Možnosti MySQL pro transakční zpracování Systémové požadavky Vytvoření tabulky Konfigurační parametry InnoDB 817 818 818 819 819 Ukázkový projekt Ukázková data Vykonáme konkrétní transakci Zálohování a obnova tabulek InnoDB Tipy pro práci s transakcemi 822 822 823 825 825 Budování transakčních aplikací s PHP Směna zboží za hotové ještě jednou 826 826 Shrnutí 830 Kapitola 37 Import a export dat 831 Ukázková tabulka Touha po inteligentním médiu Export dat Příkaz SELECT INTO OUTFILE 831 832 832 833 Import dat Import dat příkazem LOAD DATA INFILE Import dat s mysqlimport Načítání dat do tabulky s PHP 836 836 839 842 Shrnutí 843 Rejstřík 845
Podobné dokumenty
Autentizace dat
nacházeli ve většı́ vzdálenosti, zası́lali si zprávy. Dřı́ve se tak dělo pomocı́
poslů a kurýrů, kteřı́ předávali informace od odesı́latele k přı́jemci. U takto
doručovaných zpráv ...
Příloha 1_Tabulka splnění technických požadavků
V HW karty implementována podpora hardwarové
virtualizace na úrovní PCIe sběrnice.
Podpora SAN Boot operačního systému přes FC/FCoE
z diskového pole dodané v celém řešení.
HW podpora FCoE.
Datové formáty
pojmenovanou ucelenou jednotku, která obsahuje údaje určitého typu v
předem dané formě (formátu), která určuje smysl dat. Typy souborů se
rozdělují podle přípony. Pro zpracování informací je zapotř...
Instalační manuál
Na stránce pro nastavení databázového připojení vyberte typ databáze, na které chcete aplikaci
provozovat. Vyplňte adresu databázového serveru. Pro Microsoft SQL Server je to většinou ve tvaru
„náz...
Staré mapy v pražských antikvariátech
Hlavní práce s databází se odvedla v programu MySQL. Jde o jeden z nejpouţívanějších programů pro tvorbu databází. Jednou z jeho výhod je, ţe za určitých podmínek,
upřesněných licenční smlouvou, mů...
Nabídka produktů a služeb pro Magento
• Apache 1.3.x
• Apache 2.0.x
• Apache 2.2.x
PHP kompatibilita
• 5.2.0 a vyšší
• Požadovaná rozšíření:
• PDO_MySQL
• simplexml
• mcrypt
• hash
• GD
• DOM
• iconv
ová služba API)...
Klient pro správu databáz´ı MySQL Zbynek Munzar
tento databázový systém značný podı́l na trhu. Kombinace MySQL, PHP2 a Apache3 je velmi
oblı́bená při nasazovánı́ na webové servery.
www server na platformě linux debian
3.1 Poznámky k instalaci . . . . . . .
3.2 Instalace Debianu . . . . . . . . .
3.2.1 Rozdělení disku . . . . . .
3.2.2 Zbytek instalace . . . . . .
3.3 Základní nastavení . . . . . . . .
3.3.1 Vzdá...
Paralelizace datových přenosů přes rozlehlé vysokorychlostní sítě
kýžené vlastnosti paralelizmu pro náročný přenos klasickým způsobem nezískáme. K jejich
dosažení je potřeba zabývat se cíleným využitím síťového paralelizmu pro logický přenos.
Kromě zlepšení vlast...
phpMyAdmin
© Cover foto: Jiří Heller, HELER.CZ s.r.o., www.heller.cz
© Cover a layout: Ing. Pavel Kristián
Informace, které jsou v této knize zveřejněny mohou byt chráněny jako patent. Jména produktů byla uve...