PHP i MySQL Witryna WWW oparta na bazie danych Wydanie IV.pdf

(556 KB) Pobierz
PHP i MySQL. Witryna
WWW oparta na bazie
danych. Wydanie IV
Autor: Kevin Yank
T³umaczenie: Daniel Kaczmarek
ISBN: 978-83-246-2580-2
Tytu³ orygina³u:
Build Your Own Database
Driven Web Site Using PHP & MySQL
Format: 158×235, stron: 424
Wykorzystaj potencja³ PHP oraz MySQL w Twoich serwisach WWW!
• Jak zainstalowaæ i uruchomiæ w³asny serwer WWW?
• Jak stworzyæ autorski system zarz¹dzania treœci¹?
• Jak kontrolowaæ dostêp do stron WWW?
PHP i MySQL to najpopularniejszy tandem webmasterski. Iloœæ serwisów opartych na
tym po³¹czeniu jest nie do ogarniêcia. Sk¹d taka popularnoœæ? Niezale¿nie od innych
zalet atutem tego rozwi¹zania jest prostota. Ju¿ kilka chwil wystarczy, ¿eby rozpocz¹æ
przygodê z profesjonalnym tworzeniem serwisów WWW. A je¿eli poœwiêcisz trochê
wiêcej czasu, poznasz i wykorzystasz jeszcze wiêcej mo¿liwoœci PHP i MySQL.
Ale czy rzeczy proste nie mog¹ byæ jeszcze prostsze?
Mog¹. Z ksi¹¿k¹ „PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IV”
b³yskawicznie przebrniesz przez proces instalacji wszystkich niezbêdnych komponentów
– niezale¿nie od systemu, którego u¿ywasz. Autor opisuje tu sposób instalacji na platformach
Windows, MacOS X oraz Linux. Po udanej instalacji napiszesz swój pierwszy skrypt,
a nastêpnie przejdziesz do kolejnych, coraz bardziej zaawansowanych tematów. Wœród
nich znajdziesz opisy takich zagadnieñ, jak: jêzyk SQL, sk³adnia PHP, nawi¹zywanie
po³¹czenia z baz¹, publikowanie treœci znajduj¹cych siê w bazie. Ponadto zdobêdziesz
wiedzê z zakresu administrowania baz¹ MySQL, systemów zarz¹dzania treœci¹,
zarz¹dzania sesj¹ czy te¿ wykorzystania wyra¿eñ regularnych. Ksi¹¿ka ta jest nieocenion¹
pomoc¹ dla wszystkich osób zaczynaj¹cych przygodê ze stronami WWW oraz jêzykami
PHP i SQL.
• Instalacja systemu na platformach Windows, Linux oraz MacOS X
• MySQL – podstawowe zagadnienia
• PHP – sk³adnia, podstawowe polecenia i struktury
• Nawi¹zywanie po³¹czenia z baz¹ danych z poziomu PHP
• Publikacja treœci zawartych w bazie MySQL
• Zasady projektowania relacyjnej bazy danych
• Tworzenie systemu zarz¹dzania treœci¹
• Wykorzystanie wyra¿eñ regularnych
• Kontrola dostêpu do stron
• Zarz¹dzanie sesj¹ oraz „ciasteczkami”
• Zadania administracyjne w bazie MySQL
• Tworzenie zaawansowanych zapytañ MySQL
• Przechowywanie i wykorzystanie danych binarnych
Twórz dynamiczne, bogate w treœci i ³atwe w zarz¹dzaniu witryny WWW!
Spis treści
5
Spis treści
Przedmowa .................................................................................... 11
Rozdział 1. Instalacja ....................................................................................... 19
Własny serwer WWW .................................................................................................... 20
Instalacja w systemie Windows ...................................................................................... 21
Jednoczesna instalacja wszystkich komponentów ................................................. 21
Instalacja poszczególnych komponentów .............................................................. 26
Instalowanie w systemie Mac OS X ............................................................................... 34
Jednoczesna instalacja wszystkich komponentów ................................................. 34
Instalacja poszczególnych komponentów .............................................................. 37
Instalacja w systemie Linux ............................................................................................ 43
Instalowanie serwera baz danych MySQL ............................................................. 44
Instalowanie języka PHP ....................................................................................... 47
Zadania poinstalacyjne ................................................................................................... 53
O co zapytać dostawcę usług internetowych? ................................................................. 56
Nasz pierwszy skrypt PHP .............................................................................................. 57
Narzędzia gotowe, pora do pracy ................................................................................... 60
Rozdział 2. Wprowadzenie do systemu MySQL .................................................. 61
Wprowadzenie do baz danych ........................................................................................ 61
Logowanie się na serwerze MySQL ............................................................................... 62
SQL — Strukturalny Język Zapytań ............................................................................... 67
Tworzenie bazy danych .................................................................................................. 67
Tworzenie tabel .............................................................................................................. 68
Wstawianie danych do tabeli .......................................................................................... 70
Przeglądanie danych przechowywanych w bazie ........................................................... 72
Modyfikowanie danych przechowywanych w bazie ...................................................... 74
Usuwanie danych przechowywanych w bazie ................................................................ 75
Niech PHP sam napisze kod SQL ................................................................................... 75
Rozdział 3. Wprowadzenie do języka PHP ......................................................... 77
Podstawowe polecenia i składnia ................................................................................... 79
Zmienne, operatory i komentarze ................................................................................... 81
Tablice ............................................................................................................................ 82
Interakcja z użytkownikiem i formularze ....................................................................... 84
Struktury sterujące .......................................................................................................... 95
6
PHP i MySQL. Witryna WWW oparta na bazie danych
Ukrywanie spoin ........................................................................................................... 103
Nie nagłaśniaj swoich decyzji w zakresie technologii ......................................... 104
Używaj szablonów PHP ....................................................................................... 105
Wiele szablonów, jeden kontroler ........................................................................ 107
Dajcie mi bazę danych! ................................................................................................ 110
Rozdział 4. Publikowanie w sieci WWW danych przechowywanych
w bazie MySQL ............................................................................. 111
Idea działania ................................................................................................................ 111
Łączenie
się z bazą MySQL za pomocą PHP ............................................................... 113
Wysyłanie zapytań SQL za pomocą języka PHP .......................................................... 118
Obsługa zbiorów wyników zapytania SELECT ........................................................... 120
Wstawianie danych do bazy ......................................................................................... 125
Usuwanie danych z bazy .............................................................................................. 133
Misja zakończona ......................................................................................................... 139
Rozdział 5. Projektowanie relacyjnych baz danych .......................................... 141
Umożliwianie autorom podpisywania kawałów ........................................................... 142
Prosta reguła: dane trzeba przechowywać osobno ........................................................ 143
Korzystanie z wielu tabel ............................................................................................. 147
Proste relacje ................................................................................................................ 151
Relacje typu wiele-do-wielu ......................................................................................... 153
Jeden za wszystkich, wszyscy za jednego! ................................................................... 155
Rozdział 6. Programowanie strukturalne w języku PHP .................................... 157
Dołączanie plików ........................................................................................................ 158
Dołączanie zawartości HTML ............................................................................. 158
Dołączanie kodu PHP .......................................................................................... 160
Rodzaje dołączania .............................................................................................. 164
Współużytkowane pliki dołączane ....................................................................... 165
Funkcje użytkownika i biblioteki funkcji ..................................................................... 167
Zasięg zmiennych i dostęp do zmiennych globalnych ......................................... 169
Programowanie strukturalne w praktyce: funkcje pomocnicze szablonów ................... 173
Najlepszy sposób .......................................................................................................... 176
Rozdział 7. System zarządzania zawartością ................................................... 177
Strona startowa systemu ............................................................................................... 178
Zarządzanie autorami ................................................................................................... 181
Usuwanie autorów ............................................................................................... 183
Dodawanie i edytowanie autorów ........................................................................ 186
Zarządzanie kategoriami ............................................................................................... 190
Zarządzanie kawałami .................................................................................................. 195
Wyszukiwanie kawałów ...................................................................................... 195
Dodawanie i edytowanie kawałów ....................................................................... 201
Usuwanie kawałów .............................................................................................. 211
Podsumowanie .............................................................................................................. 212
Rozdział 8. Formatowanie zawartości przy użyciu wyrażeń regularnych ............ 215
Wyrażenia regularne ..................................................................................................... 216
Formatowanie
łańcuchów
tekstu za pomocą wyrażeń regularnych .............................. 220
Wytłuszczenie i kursywa ..................................................................................... 221
Akapity ................................................................................................................ 223
Hiperłącza ............................................................................................................ 225
Domykanie znaczników ....................................................................................... 228
Składamy wszystkie elementy w jedną całość ..................................................... 229
Automatyczne zatwierdzanie zawartości ...................................................................... 232
Spis treści
7
Rozdział 9. Obsługa cookies i sesji oraz kontrola dostępu ............................... 233
Cookies ......................................................................................................................... 233
Obsługa sesji w PHP ..................................................................................................... 238
Prosty koszyk na zakupy ...................................................................................... 240
Kontrola dostępu .......................................................................................................... 248
Projekt bazy danych ............................................................................................. 248
Kod
źródłowy
kontrolera ..................................................................................... 252
Biblioteka funkcji ................................................................................................ 257
Zarządzanie hasłami i rolami ............................................................................... 266
Kolejne wyzwanie, czyli moderowanie kawałów ................................................ 273
Nieograniczone możliwości .......................................................................................... 275
Rozdział 10. Administrowanie bazą MySQL ....................................................... 277
phpMyAdmin ............................................................................................................... 278
Kopie zapasowe baz danych MySQL ........................................................................... 282
Wykonywanie kopii za pomocą programu mysqldump ....................................... 282
Kopie przyrostowe w binarnym dzienniku aktualizacji ....................................... 283
Kontrola dostępu w MySQL ......................................................................................... 286
Nadawanie uprawnień za pomocą polecenia GRANT ......................................... 287
Odbieranie uprawnień przy użyciu polecenia REVOKE ..................................... 289
Porady na temat kontroli dostępu ......................................................................... 290
Problem braku dostępu ........................................................................................ 292
Sprawdzanie i naprawianie plików danych MySQL ..................................................... 293
Lepiej się ubezpieczać, niż potem
żałować
.................................................................. 295
Rozdział 11. Zaawansowane zapytania SQL ...................................................... 297
Sortowanie wyników zapytania SELECT .................................................................... 297
Ustawianie limitów dla zapytań .................................................................................... 299
Blokowanie tabel .......................................................................................................... 300
Aliasy nazw kolumn i tabel .......................................................................................... 302
Grupowanie wyników zapytania SELECT ................................................................... 305
Złączenie lewostronne .................................................................................................. 306
Ograniczanie wyników za pomocą klauzuli HAVING ................................................. 309
Dalsze lektury ............................................................................................................... 310
Rozdział 12. Dane binarne ................................................................................ 313
Częściowo dynamiczne strony WWW ......................................................................... 313
Obsługa
ładowania
plików ........................................................................................... 319
Przypisywanie plikom niepowtarzalnych nazw ................................................... 322
Rejestrowanie w bazie danych
ładowanych
plików ...................................................... 324
Binarne typy kolumn ........................................................................................... 325
Zapisywanie plików ............................................................................................. 327
Przeglądanie zapisanych plików .......................................................................... 328
Kompletny skrypt ......................................................................................................... 332
Problemy związane z wielkimi plikami ........................................................................ 338
Rozmiar pakietów MySQL .................................................................................. 338
Ograniczenia czasu działania skryptów PHP ....................................................... 338
Zakończenie .................................................................................................................. 339
Dodatek A Składnia MySQL ........................................................................... 341
Instrukcje języka SQL obsługiwane przez MySQL ...................................................... 342
ALTER TABLE ................................................................................................... 342
ANALYZE TABLE ............................................................................................. 344
CREATE DATABASE ........................................................................................ 344
CREATE INDEX ................................................................................................ 345
8
PHP i MySQL. Witryna WWW oparta na bazie danych
CREATE TABLE ................................................................................................ 345
DELETE .............................................................................................................. 347
DESCRIBE/DESC ............................................................................................... 348
DROP DATABASE ............................................................................................ 348
DROP INDEX ..................................................................................................... 348
DROP TABLE ..................................................................................................... 348
EXPLAIN ............................................................................................................ 348
GRANT ............................................................................................................... 349
INSERT ............................................................................................................... 349
LOAD DATA INFILE ......................................................................................... 350
LOCK/UNLOCK TABLES ................................................................................. 351
OPTIMIZE TABLE ............................................................................................. 352
RENAME TABLE ............................................................................................... 352
REPLACE ........................................................................................................... 353
REVOKE ............................................................................................................. 353
SELECT ............................................................................................................... 353
SET ...................................................................................................................... 359
SHOW ................................................................................................................. 359
TRUNCATE ........................................................................................................ 360
UNLOCK TABLES ............................................................................................. 361
UPDATE ............................................................................................................. 361
USE ...................................................................................................................... 362
Dodatek B Funkcje MySQL ............................................................................ 363
Funkcje przepływu sterowania ..................................................................................... 363
Funkcje matematyczne ................................................................................................. 364
Funkcje tekstowe .......................................................................................................... 366
Funkcje daty i czasu ..................................................................................................... 370
Pozostałe funkcje .......................................................................................................... 374
Funkcje używane w klauzulach GROUP BY ............................................................... 378
Dodatek C Typy danych dla kolumn tabel MySQL ........................................... 379
Typy liczbowe .............................................................................................................. 380
Typy znakowe .............................................................................................................. 383
Typy daty i czasu .......................................................................................................... 387
Dodatek D Funkcje PHP współpracujące z MySQL .......................................... 389
Najczęściej używane funkcje mysqli_* w języku PHP ................................................ 389
mysqli_affected_rows .......................................................................................... 390
mysqli_character_set_name ................................................................................. 390
mysqli_close ........................................................................................................ 390
mysqli_connect .................................................................................................... 390
mysqli_connect_errno .......................................................................................... 391
mysqli_connect_error .......................................................................................... 391
mysqli_data_seek ................................................................................................. 391
mysqli_errno ........................................................................................................ 392
mysqli_error ......................................................................................................... 392
mysqli_fetch_all .................................................................................................. 392
mysqli_fetch_array .............................................................................................. 393
mysqli_fetch_assoc .............................................................................................. 393
mysqli_fetch_field ............................................................................................... 393
mysqli_fetch_field_direct .................................................................................... 393
mysqli_fetch_fields .............................................................................................. 394
Zgłoś jeśli naruszono regulamin