SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
PHP, Microsoft IIS i SQL
                           Server. Projektowanie
                           i programowanie baz danych
                           Autor: Andrzej Szel¹g
                           ISBN: 978-83-246-1513-1
                           Format: 158x235, stron: 368



                                         Poznaj i wykorzystaj narzêdzia do projektowania baz danych
                               • Jak konfigurowaæ repozytorium PEAR?
                               • Jak przetwarzaæ formularze za pomoc¹ jêzyka PHP?
                               • Jak wprowadzaæ dane do tabeli bazy danych, a póŸniej je usuwaæ?
                           Umiejêtnoœæ tworzenia interaktywnych stron www typu e-commerce i zarz¹dzania nimi
                           jest dzisiaj w³aœciwie niezbêdna. Przydaje siê nie tylko administratorom sieci, ale tak¿e
                           wszystkim informatykom i w³aœcicielom firm. Relacyjne bazy danych stanowi¹
                           podstawê nowoczesnej aplikacji internetowej, wiêc przede wszystkim nale¿y poznaæ
                           najpopularniejsze jêzyki wykorzystywane podczas pracy na tych bazach: jêzyk
                           skryptowy PHP oraz jêzyk zapytañ SQL, a tak¿e internetowe us³ugi informacyjne (IIS)
                           wystêpuj¹ce w najnowszych serwerowych systemach operacyjnych Microsoft Windows.
                           Ksi¹¿ka „PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych”
                           w przystêpny sposób i na konkretnym przyk³adzie przedstawia zagadnienia dotycz¹ce
                           projektowania, programowania i implementowania relacyjnej bazy danych. Mimo ¿e
                           podrêcznik przeznaczony jest dla osób, które przynajmniej w niewielkim stopniu
                           orientuj¹ siê w tej tematyce, szeroka skala prezentowanych informacji (od prostych
                           zagadnieñ teoretycznych do problemów zaawansowanych technicznie) sprawia,
                           ¿e ka¿dy mo¿e z niego skorzystaæ – aby na przyk³ad nauczyæ siê podstawowych
                           instrukcji jêzyka SQL i PHP, instalowania i konfigurowania ich w systemie Windows,
                           korzystania z us³ug IIS i wreszcie zarz¹dzania w³asn¹ baz¹ danych.
                               • System zarz¹dzania baz¹ danych
                               • Nazwy i typy danych
                               • Indeksy, klucze i schematy
                               • Architektura baz danych
                               • Normalizacja i projektowanie baz danych
Wydawnictwo Helion             • Œrodowisko jêzyka SQL
ul. Koœciuszki 1c              • Podstawowe klauzule jêzyka SQL
44-100 Gliwice                 • Podstawowe w³aœciwoœci jêzyka PHP
tel. 032 230 98 63             • Architektura us³ug IIS
e-mail: helion@helion.pl       • Obs³uga baz danych Microsoft SQL z poziomu PHP
                               • PEAR
                                                 Znajdziesz tu wszystko, czego potrzebujesz,
                                               aby stworzyæ w³asn¹ profesjonaln¹ bazê danych!
Spis tre ci
                Wprowadzenie .................................................................................. 9
                Kto powinien przeczytaü t ksi k ? .............................................................................. 10
                O czym jest ta ksi ka? .................................................................................................. 11
                Informacje o testowym rodowisku sieciowym ............................................................. 13
                Przykáady do ksi ki ....................................................................................................... 24


Rozdziaä 1. Podstawy baz danych ..................................................................... 25
                Czym jest baza danych? ................................................................................................. 25
                System Zarz dzania Baz Danych .................................................................................. 27
                Podstawowe poj cia zwi zane z bazami danych ............................................................ 30
                    Tabele, kolumny i wiersze danych ........................................................................... 31
                    Nazwy i typy danych ................................................................................................ 36
                    Indeksy, klucze i schematy ....................................................................................... 38
                Architektura baz danych ................................................................................................. 43
                Typy baz danych ............................................................................................................. 46
                Normalizacja relacyjnej bazy danych ............................................................................. 48
                Projektowanie relacyjnej bazy danych ............................................................................ 51
                Tworzenie relacyjnej bazy danych ................................................................................. 56
                Dodatkowe ródáa informacji ......................................................................................... 68
Rozdziaä 2. Jözyk SQL ...................................................................................... 69
                Czym jest SQL? .............................................................................................................. 69
                 rodowisko j zyka SQL ................................................................................................. 73
                Podstawowe instrukcje j zyka SQL ............................................................................... 77
                Data Definition Language (DDL) ................................................................................... 78
                   Instrukcja CREATE DATABASE ........................................................................... 79
                   Instrukcja CREATE TABLE .................................................................................... 81
                   Instrukcja CREATE VIEW ...................................................................................... 83
                   Instrukcja CREATE INDEX .................................................................................... 84
                Data Manipulation Language (DML) ............................................................................. 85
                   Instrukcja INSERT ................................................................................................... 86
                   Instrukcja SELECT .................................................................................................. 88
                   Instrukcja UPDATE ................................................................................................. 93
                   Instrukcja DELETE .................................................................................................. 95
                Data Control Language (DCL) ....................................................................................... 96
6                     PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


                Podstawowe klauzule j zyka SQL .................................................................................. 97
                Klauzula FROM ............................................................................................................. 97
                   Klauzula WHERE .................................................................................................... 98
                   Klauzula ORDER BY .............................................................................................. 99
                   Klauzula GROUP BY ............................................................................................ 100
                   Klauzula HAVING ................................................................................................. 101
                Dodatkowe ródáa informacji ....................................................................................... 102
Rozdziaä 3. PHP ............................................................................................. 103
                Czym jest PHP? ............................................................................................................ 104
                Podstawowe elementy j zyka PHP ............................................................................... 114
                    Zmienne i staáe ....................................................................................................... 114
                    Wyra enia i operatory ............................................................................................ 117
                    Struktury kontroluj ce ............................................................................................ 124
                    Funkcje ................................................................................................................... 129
                    Tablice .................................................................................................................... 131
                Podstawowe wáa ciwo ci j zyka PHP .......................................................................... 133
                    Przetwarzanie formularzy ....................................................................................... 133
                    Zapis i odczyt plików ............................................................................................. 138
                    Data i czas .............................................................................................................. 141
                Instalowanie PHP w systemie Windows Server 2003 i Windows Vista ....................... 143
                    Pobieranie PHP ...................................................................................................... 144
                    Instalowanie i konfigurowanie PHP w systemie Windows .................................... 146
                Dodatkowe ródáa informacji ....................................................................................... 156
Rozdziaä 4. Microsoft IIS ................................................................................ 157
                Podstawowe informacje o usáugach IIS ........................................................................ 158
                Architektura usáug IIS .................................................................................................. 160
                Instalowanie serwera IIS 6.0 w systemie Windows Server 2003 .................................. 165
                Instalowanie serwera IIS 7.0 w systemie Windows Vista ............................................ 180
                Rozszerzenia ISAPI i CGI/FastCGI ............................................................................. 184
                Dodawanie obsáugi PHP do serwera IIS 6.0 jako rozszerzenia ISAPI .......................... 185
                Dodawanie obsáugi PHP do serwera IIS 7.0 jako rozszerzenia ISAPI .......................... 204
                Dodawanie obsáugi PHP do serwera IIS 6.0 jako rozszerzenia CGI ................................... 210
                Dodatkowe ródáa informacji ....................................................................................... 218
Rozdziaä 5. Microsoft SQL Server ................................................................... 221
                Microsoft SQL Server 2000 .......................................................................................... 222
                   Wprowadzenie ........................................................................................................ 222
                   Przygotowanie do instalacji .................................................................................... 223
                   Wymagania sprz towe i programowe .................................................................... 224
                   Instalowanie bazy danych programu Microsoft SQL Server 2000 ......................... 225
                   Instalowanie dodatku Service Pack 4 dla Microsoft SQL Server 2000 .................. 233
                Microsoft SQL Server 2005 .......................................................................................... 238
                   Wprowadzenie ........................................................................................................ 238
                   Przygotowanie do instalacji .................................................................................... 240
                   Wymagania sprz towe i programowe .................................................................... 241
                   Instalowanie bazy danych programu Microsoft SQL Server 2005 ......................... 241
                   Instalowanie dodatku Service Pack 2 dla Microsoft SQL Server 2005 .................. 257
                Logowanie do serwera bazy danych programu Microsoft SQL Server 2005 ............... 264
                   Implementacja relacyjnej bazy danych w programie
                     Microsoft SQL Server 2005 ................................................................................. 265
                Dodatkowe ródáa informacji ....................................................................................... 270
Spis tre ci                                                                                                                                   7


Rozdziaä 6. Obsäuga bazy danych Microsoft SQL Server z poziomu PHP ............ 271
                Aplikacja Obsáuga bazy danych programu Microsoft SQL Server z poziomu
                 skryptów PHP ............................................................................................................ 272
                   Standardy sieciowe W3C ....................................................................................... 276
                   Oddzielenie struktury, prezentacji i zachowania .................................................... 276
                   Deklaracja typu dokumentu i typu przestrzeni nazw .............................................. 278
                   Deklaracja typu kodowania znaków ....................................................................... 279
                   Deklaracja typu arkusza stylów .............................................................................. 279
                Konfigurowanie obsáugi bazy danych w PHP .............................................................. 281
                Obsáuga bazy danych z poziomu skryptów PHP .......................................................... 286
                Podstawowe funkcje PHP obsáuguj ce baz danych Microsoft SQL Server ................ 291
                   Funkcja mssql_connect() ........................................................................................ 292
                   Funkcja mssql_select_db() ..................................................................................... 293
                   Funkcja mssql_query() ........................................................................................... 293
                   Funkcja mssql_num_rows() ................................................................................... 294
                   Funkcja mssql_fetch_array() .................................................................................. 295
                   Funkcja mssql_free_result() ................................................................................... 296
                   Funkcja mssql_close() ............................................................................................ 296
                   Pozostaáe funkcje PHP ........................................................................................... 296
                Dost p do bazy danych Microsoft SQL Server 2005 z poziomu skryptów PHP .......... 297
                   Poá czenie z serwerem bazy danych ...................................................................... 298
                   Poá czenie z relacyjn baz danych ........................................................................ 299
                   Wprowadzanie nowych danych do tabeli bazy danych ........................................ 300
                   Wy wietlanie zawarto ci tabeli bazy danych ......................................................... 303
                   Uaktualnianie zawarto ci tabeli bazy danych ......................................................... 305
                   Usuwanie danych z tabeli bazy danych .................................................................. 309
                   Wyszukiwanie danych w tabeli bazy danych ......................................................... 311
                Dodatkowe ródáa informacji ....................................................................................... 314
Rozdziaä 7. PEAR ........................................................................................... 315
                Czym jest PEAR? ......................................................................................................... 315
                Instalowanie PEAR DB w systemie Windows ............................................................. 317
                    Pobieranie repozytorium PEAR ............................................................................. 317
                    Instalowanie repozytorium PEAR .......................................................................... 317
                    Instalowanie moduáu DB ........................................................................................ 321
                Obsáuga bazy danych Microsoft SQL Server 2005 z wykorzystaniem moduáu
                  PEAR DB ................................................................................................................... 324
                    Poá czenie z serwerem bazy ................................................................................... 325
                    Poá czenie z relacyjn baz .................................................................................... 327
                    Wprowadzanie nowych danych do tabeli bazy danych .......................................... 328
                    Wy wietlanie zawarto ci tabeli bazy danych ......................................................... 332
                    Uaktualnianie zawarto ci tabeli bazy danych ......................................................... 334
                    Usuwanie danych z tabeli bazy danych .................................................................. 336
                    Wyszukiwanie danych w tabeli bazy danych ......................................................... 338
                Dodatkowe ródáa informacji ....................................................................................... 339
8                PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


Dodatek A Struktura relacyjnej bazy danych WirtualnySklep ........................... 341
Dodatek B Operatory stosowane w klauzuli WHERE ....................................... 345
Dodatek C Funkcje PHP do kontroli typów zmiennych .................................... 347
Dodatek D Zmienne superglobalne wystöpujñce w PHP .................................. 349
Dodatek E    Zawarto è folderu skompresowanego phiisq.zip ............................ 351
             Skorowidz .................................................................................... 353
Rozdziaä 6.
Obsäuga bazy danych
Microsoft SQL Server
z poziomu PHP
          Jedn z najwa niejszych zalet j zyka PHP jest mo liwo ü pozyskiwania ró nych infor-
          macji z relacyjnych baz danych znajduj cych si na serwerach baz danych firmy Micro-
          soft: SQL Server 2000 lub SQL Server 2005 za pomoc skryptów PHP. St d te j zyk
          PHP jest logicznym wyborem dla dynamicznego tworzenia zawarto ci stron czy apli-
          kacji internetowych, za pomoc których mo liwa jest obsáuga relacyjnej bazy danych.

          Poza wspomnianymi wy ej Systemami Zarz dzania Bazami Danych j zyk PHP standar-
          dowo udost pnia wiele wbudowanych oraz wyspecjalizowanych funkcji umo liwiaj cych
          dost p do wi kszo ci popularnych Systemów Zarz dzania Bazami Danych, do których
          mo na zaliczyü:
             Database firmy Oracle,
             MySQL firmy MySQL AB,
             PostgreSQL firmy PostgreSQL Global Development Group,
             DB2 firmy IBM.

          J zyk PHP umo liwia równie wspóáprac z relacyjnymi bazami danych obsáuguj cymi
          uniwersalny standard ODBC (ang. Open DataBase Connectivity)1, którym nie b dzie-
          my si zajmowali w tej ksi ce. Skupimy si tu przede wszystkim na przedstawieniu
          obsáugi bazy danych programu Microsoft SQL Server 2005 za pomoc wbudowanych
          w j zyk PHP 5.2.5 funkcji do obsáugi tego typu bazy danych.


1
    ODBC to niezale ny od j zyka programowania, systemu operacyjnego i bazy danych interfejs API
    (ang. Application Programming Interface), który pozwala programom á czyü si z systemami
    zarz dzania baz danych.
272            PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


      Dost p do przykáadowej relacyjnej bazy danych o nazwie WirtualnySklep zostanie
      przedstawiony na przykáadzie aplikacji internetowej o nazwie Obsáuga bazy danych
      Microsoft SQL Server z poziomu skryptów PHP, na któr skáada si kilkana cie
      skryptów PHP. Aplikacja ta b dzie uruchamiana z poziomu przegl darki internetowej
      klienta WWW. Z kolei za pomoc serwera internetowego IIS firmy Microsoft i odpo-
      wiednio skonfigurowanego interpretera skryptów PHP b dzie realizowana obsáuga rela-
      cyjnej bazy danych.



Aplikacja Obsäuga bazy danych
programu Microsoft SQL Server
z poziomu skryptów PHP
      W poprzednich rozdziaáach zostaáy opisane ró ne skáadniki i zastosowania j zyka struk-
      turalnego PHP oraz baz danych firmy Microsoft: SQL Server 2000 oraz SQL Server
      2005. Z kolei dalsze podrozdziaáy koncentruj si na podstawowych elementach i meto-
      dach dost pu do relacyjnych baz danych przy wykorzystaniu przegl darki interneto-
      wej oraz skryptów PHP. Przykáady te z pewno ci nie mówi wszystkiego o dost pie do
      tego typu baz danych. Nale y je raczej traktowaü jako wst p do projektowania czy
      programowania na wi ksz skal , tj. tworzenia w peáni profesjonalnych i rozbudowa-
      nych aplikacji internetowych, za pomoc których mo liwa b dzie obsáuga baz danych
      dowolnych typów.

      Podane dalej przykáady daj solidne podstawy do zrozumienia kolejnych czynno ci,
      jakie maj miejsce podczas obsáugi relacyjnej bazy danych programu Microsoft SQL
      Server 2005 z poziomu skryptów j zyka PHP. Do tych czynno ci mo na zaliczyü:
         poá czenie z serwerem bazy danych o nazwie EA-SQL2005,
         wybranie relacyjnej bazy danych o nazwie WirtualnySklep,
         wykonanie zapytania SQL (lub kilku zapyta ) na tabeli bazowej o nazwie
          tKlienci relacyjnej bazy danych,
         obejrzenie wyników przygotowanych przez interpreter PHP, przesáanych
          przez serwer internetowy i wy wietlonych w przegl darce internetowej klienta,
         zwolnienie zajmowanych zasobów systemu przez wynik zapytania
          oraz poá czenie z serwerem bazy danych.

      Wszystkie przykáady zawarte w tym i w nast pnym rozdziale b d uruchamiane
      w uproszczonym rodowisku testowym, które zostaáo przedstawione na rysunku 6.1.
      Za pomoc przegl darki internetowej Internet Explorer 7.0, która jest cz ci systemu
      klienckiego Microsoft Windows Vista Business zainstalowanego na komputerze o na-
      zwie EA-K1, b dzie uzyskiwany dost p do relacyjnej bazy danych o nazwie Wirtualny-
      Sklep, która zostaáa zainstalowana na serwerze czáonkowskim EA-SQL2005. Na tym
      serwerze zostaáy równie zainstalowane trzy aplikacje: interpreter PHP w wersji 5.2.5,
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                          273




Rysunek 6.1. Uproszczone rodowisko testowe do obsáugi bazy danych Microsoft SQL Server 2005
z poziomu skryptów PHP

        usáugi IIS w wersji 6.0 (serwer internetowy) i baza danych programu Microsoft SQL
        Server 2005 w wersji Enterprise Evaluation Edition. Serwer czáonkowski EA-SQL2005,
        jak ju wiemy z wcze niejszych rozdziaáów, b dzie pracowaá pod kontrol systemu ope-
        racyjnego Microsoft Windows Server 2003 w wersji Enterprise Edition z dodatkiem
        Service Pack 2. Dost p do serwera internetowego firmy Microsoft realizowany b dzie
        za pomoc lokalnej sieci komputerowej, która pracuje w domenie sieciowej o na-
        zwie EA.local.

        Na serwerze internetowym IIS w wersji 6.0 (w jego domy lnym katalogu %System-
        Drive%Inetpubwwwroot) powinny znajdowaü si skrypty PHP, które skáadaj si
        na prost aplikacj internetow o nazwie Obsáuga bazy danych programu Microsoft
        SQL Server z poziomu skryptów PHP. Wszystkie skrypty s dost pne pod adresem
        ftp://ftp.helion.pl/przyklady/phiisq.zip w folderze Skrypty PHP. Po ci gni ciu i rozpa-
        kowaniu tego katalogu nale y je skopiowaü do powy szej lokalizacji na serwerze in-
        ternetowym. Okno gáówne tej aplikacji zostaáo przedstawione na rysunku 6.2, a jej kod
        na listingu 6.1. Aplikacja ta skáada si z kilkunastu przykáadowych skryptów PHP
        zawieraj cych kod XHTML, CSS, PHP i tzw. osadzony SQL, który przeznaczony jest
        gáównie do manipulowania danymi zawartymi w relacyjnej bazie danych WirtualnySklep
        pracuj cej pod kontrol programu Microsoft SQL Server 2005. Aplikacja internetowa,
        która stanowi cz ü tej ksi ki, zostaáa w skrócie przedstawiona szerzej w nast pnym
        podrozdziale.
274               PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych




Rysunek 6.2. Okno gáówne aplikacji internetowej Obsáuga bazy danych programu Microsoft SQL Server
z poziomu skryptów PHP

Listing 6.1. Kod aplikacji internetowej Obsáuga bazy danych programu Microsoft SQL Server
z poziomu skryptów PHP (index.php)
           <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
           "http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd">
           <html xmlns="http://www.w3.org/1999/xhtml">

           <head>
             <title>Obs uga bazy danych programu Microsoft SQL Server z poziomu skryptów
             PHP</title>
             <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
             <link href="style.css" type="text/css" rel="stylesheet" />
           </head>

           <body>
             <div id="wyrownanie_do_srodka">
               <h1>
                  <?php
                    require_once('nazwa_programu.php');
                  ?></h1>

               <h2>&nbsp;<a href="index.php"><img style="border:none;width:16px;height:16px"
               src="home.gif" alt="" title="Strona g ówna" /></a></h2>
               <h3>&nbsp;<img src="kropka.jpg" alt="" title="Strona g ówna" /> Zapraszamy!</h3>

                  <table>
                    <tbody>
                      <tr>
                        <td class="td_kolor_glowna_nagl">&nbsp;Zadania do wykonania</td>
                        <td class="td_kolor_glowna_nagl">&nbsp;Skrypt PHP</td>
                        <td class="td_kolor_glowna_nagl">&nbsp;Skrypt PHP [PEAR DB]</td></tr>
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                        275


                   <tr>
                     <td class="td_kolor_glowna">&nbsp;&#187; Testowanie po æczenia
                     z serwerem</td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_serwerem.php">
                     polacz_z_serwerem.php</a></td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_
                     ´serwerem_DB.php">
                     polacz_z_serwerem_DB.php</a></td></tr>

                   <tr>
                     <td class="td_kolor_glowna">&nbsp;&#187; Testowanie po æczenia
                     z bazæ danych</td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_bd.php">
                     polacz_z_bd.php</a></td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_bd_DB.php">
                     polacz_z_bd_DB.php</a></td></tr>

                   <tr>
                     <td class="td_kolor_glowna">&nbsp;&#187; Dodawanie nowego rekordu
                     do tabeli</td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="insert.php">
                     insert.php</a></td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="insert_DB.php">
                     insert_DB.php</a></td></tr>

                   <tr>
                     <td class="td_kolor_glowna">&nbsp;&#187; Wy wietlanie rekordów
                     ´z tabeli</td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="select.php">
                     select.php</a></td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="select_DB.php">
                     select_DB.php</a></td></tr>

                   <tr>
                     <td class="td_kolor_glowna">&nbsp;&#187; Aktualizacja rekordu w tabeli</td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="update.php">
                     update.php</a></td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="update_DB.php">
                     update_DB.php</a></td></tr>

                   <tr>
                     <td class="td_kolor_glowna">&nbsp;&#187; Usuwanie rekordu z tabeli</td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="delete.php">
                     delete.php</a></td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="delete_DB.php">
                     delete_DB.php</a></td></tr>

                   <tr>
                     <td class="td_kolor_glowna">&nbsp;&#187; Wyszukiwanie rekordów
                     ´w tabeli</td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="szukaj.php">
                     szukaj.php</a></td>
                     <td class="td_kolor_glowna">&nbsp;&#187; <a href="szukaj_DB.php">
                     szukaj_DB.php</a></td></tr></tbody></table></div></body></html>
276                 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


          Powy szy kod zostanie do ü szczegóáowo opisany w kolejnych podrozdziaáach — szcze-
          gólnie te jego elementy, które s zwi zane ze standardami sieciowymi organizacji W3C,
          czyli mi dzy innymi z technologiami CSS i XHTML.

          Aplikacja internetowa Obsáuga bazy danych programu Microsoft SQL Server z poziomu
          skryptów PHP jest niezwykle prostym projektem zawieraj cym kilkana cie skryptów
          PHP, za pomoc których realizowana jest obsáuga bazy danych programu Microsoft SQL
          Server 2005 przy wykorzystaniu funkcji bazodanowych dost pnych w PHP. Skrypty te
          ilustruj zastosowanie j zyków strukturalnych: PHP i SQL oraz bazy danych progra-
          mu Microsoft SQL Server 2005. Oczywi cie kod tej aplikacji mo na zoptymalizowaü
          tak, by w jeszcze mniejszym stopniu obci aá zasoby systemu i lepiej realizowaá
          swoje funkcje.


Standardy sieciowe W3C
          W przypadku budowania witryn i aplikacji internetowych opartych na nowoczesnych
          standardach sieciowych nale y pami taü o tym, aby mo liwe byáo ich szybkie prze-
          budowanie w przyszáo ci, je eli kiedykolwiek zajdzie taka potrzeba. Pozwalaj na to
          technologie rekomendowane przez mi dzynarodowe konsorcjum o nazwie W3C (ang.
          World Wide Web Consortium). Generalnie, aplikacja internetowa o nazwie Obsáuga bazy
          danych programu Microsoft SQL Server z poziomu skryptów PHP jest prostym projek-
          tem, którego struktura zostaáa zbudowana przy u yciu tzw. standardów sieciowych2.

          Co daje projektowanie i budowanie witryn oraz aplikacji internetowych z u yciem stan-
          dardów sieciowych? Odpowied jest prosta: obni enie kosztów produkcji i utrzyma-
          nia przy zapewnieniu dost pno ci dla klientów czy u ytkowników, a tak e zgodno ü z
          przegl darkami internetowymi i dziaáanie na ró nych platformach systemowych (Win-
          dows, Unix itp.). Generalnie mówi c, standardy sieciowe s pot nym i profesjonalnym
          narz dziem, dzi ki któremu mo na projektowaü oraz budowaü zaawansowane i profe-
          sjonalnie wygl daj ce witryny czy aplikacje internetowe. S one kluczem do projekto-
          wania w niezwykle efektywny, efektowny, a zarazem dost pny dla wielu osób sposób.


Oddzielenie struktury, prezentacji i zachowania
          Powszechnie znana w ród projektantów i programistów witryn czy aplikacji interne-
          towych jest idea stosowania kodu XHTML3 do opisywania struktury dokumentu in-
          ternetowego (np. strony internetowej), stylów CSS4 do opisywania jego wygl du (czyli
          prezentacji), a j zyków PHP czy JavaScript — jego zachowania. Koncepcja oddziele-
          nia sposobu prezentacji (za pomoc plików z rozszerzeniem .css) od zawarto ci (pliki
          z rozszerzeniem .html) mo e byü z powodzeniem rozszerzona na skrypty PHP, tj. pliki

2
    Standardy sieciowe stanowi kontynuacj istniej cych dot d technik internetowych. S to wi c j zyki
    strukturalne (takie, jak XHTML czy XML), j zyki warstwy aplikacji (takie, jak CSS) czy j zyki
    skryptowe (takie, jak ECMAScript).
3
    Wi cej informacji na temat XHTML-a mo na znale ü na stronie pod adresem http://www.w3.org/MarkUp/.
4
    Wi cej informacji na temat CSS mo na znale ü na stronie pod adresem http://www.w3.org/Style/CSS/.
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                        277


       z rozszerzeniem .php. Przykáadem takiego rozszerzenia jest wáa nie przedstawiona
       tutaj aplikacja internetowa Obsáuga bazy danych programu Microsoft SQL Server z po-
       ziomu skryptów PHP. Dlaczego warto stosowaü tego typu rozwi zanie? Otó dlatego,
         e du o áatwiej utrzymywaü, u ywaü czy te modyfikowaü poszczególne pliki skáadaj -
       ce si na aplikacj internetow przez dáu szy czas, je eli logika (pliki .php) b dzie
       oddzielona od zawarto ci (pliki .html), a ta z kolei od sposobu prezentacji (pliki .css).
       Generalnie mówi c, sprowadza si to do rozdzielenia kodu PHP od kodu XHTML i CSS.
       Bez tego kod aplikacji internetowej stanie si znacznie trudniejszy w utrzymaniu, u yt-
       kowaniu czy modyfikowaniu. Szczególnie wa ne jest to np. w przypadku wi kszych
       projektów. Otó mo e si np. okazaü, e w przypadku wi kszych zmian w kodzie wi-
       tryny czy aplikacji internetowej niemo liwe b dzie przystosowanie jej do nowej rzeczy-
       wisto ci. Problemem mo e okazaü si np. du a cz ü kodu XHTML, który zawiera
       znaczniki HTML decyduj ce o wygl dzie poszczególnych jej elementów. Ich usuni -
       cie czy zmodyfikowanie mo e zaj ü naprawd bardzo du o czasu oraz stworzyü wiele
       problemów.

       J zyk znaczników XHTML mo e zawieraü sformatowane dane tekstowe, obiekty osa-
       dzone (jak rysunki, filmy, prezentacje itp.). J zyk prezentacyjny CSS z kolei formatuje
       poszczególne witryny czy aplikacje internetowe oraz kontroluje rozmieszczenie, uáo e-
       nie czy kolor poszczególnych ich elementów. Za j zyk strukturalny PHP czy JavaScript
       umo liwia tworzenie zaawansowanych funkcji witryny czy aplikacji internetowej,
       a tak e efektów dziaáaj cych w ró nych przegl darkach internetowych czy platformach
       systemowych (Windows, Unix, MacOS itp).

          Odseparowanie struktury dokumentu od prezentacji i zachowania jest oznakñ pro-
          fesjonalnego podej cia do projektowania oraz programowania witryn i aplikacji inter-
          netowych. Mówiñc jeszcze inaczej, jest to metoda, wedäug której bödñ projektowane
          witryny i aplikacje internetowe w przyszäo ci.


       Autor niniejszej ksi ki jest zdania, e strony czy aplikacje internetowe powinny byü
       tworzone w oparciu o kaskadowe arkusze stylów (jak j zyk prezentacji CSS) i standar-
       dy sieciowe (jak j zyk znaczników XHTML). Dlaczego? Otó powy sze mechanizmy
       rozwi zuj liczne problemy nie tylko projektantów czy programistów, ale równie
       zwykáych u ytkowników, którzy korzystaj z witryn i aplikacji internetowych.

       Technologie takie, jak CSS czy XHTML, pozwalaj :
          zmniejszaü nakáad pracy projektantów i programistów oraz skróciü czas
            projektowania,
          projektowaü zaawansowane funkcje interaktywne witryn lub aplikacji
            internetowych, które dziaáaj w ró nych przegl darkach internetowych
            i na ró nych platformach systemowych (Windows, Unix, MacOS itp.),
          kontrolowaü rozmieszczenie w przegl darkach internetowych poszczególnych
            elementów czy cz ci witryn lub aplikacji internetowych,
          áatwo i szybko modyfikowaü cz ü czy caáo ü witryn lub aplikacji internetowych,
          odci aü serwery internetowe i á cza internetowe,
278               PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


            oddzielaü styl witryn lub aplikacji internetowych od ich struktury czy zachowania,
            skróciü czas wczytywania witryn internetowych,
            zapewniü wzrost dost pno ci witryny internetowej,
            obsáugiwaü urz dzenia przeno ne, takie jak np. telefony komórkowe czy inne
              urz dzenia bezprzewodowe.


Deklaracja typu dokumentu i typu przestrzeni nazw
        Aplikacja internetowa Obsáuga bazy danych programu Microsoft SQL Server z poziomu
        skryptów PHP jest projektem, którego struktura zostaáa zbudowana przy u yciu jed-
        nego z trzech aktualnie wykorzystywanych standardów sieciowych — XHTML 1.0
        Transtional, który rekomendowany jest przez konsorcjum W3C. Mo na si o tym prze-
        konaü, edytuj c kod dowolnego ze skryptów PHP, które skáadaj si na t aplikacj .
        Mianowicie ka dy dokument zaczyna si od deklaracji typu dokumentu internetowe-
        go wraz z deklaracj typu przestrzeni nazw, które zostaáy pokazane na listingu 6.2.

Listing 6.2. Deklaracja typu dokumentu internetowego wraz z deklaracj typu przestrzeni nazw
(index.php)
           <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
           "http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd">
           <html xmlns="http://www.w3.org/1999/xhtml">


        Dokumenty internetowe, które zostaáy stworzone przy u yciu j zyka znaczników
        XHTML, rozpoczynaj si od elementów informuj cych dowoln przegl dark inter-
        netow o tym, w jaki sposób maj byü one interpretowane i sprawdzane. St d te
        pierwszy z tych elementów (DOCTYPE) jest deklaracj typu dokumentu internetowego.
        Generalnie j zyk XHTML pozwala projektantom i programistom tworzyü klika ró nych
        typów dokumentów, ka dy z zestawem innych reguá, które s wymieniane w specyfika-
        cji XHTML jako definicja typu dokumentu (w skrócie DTD). Wspomniana deklaracja
        typu dokumentu internetowego (DOCTYPE) informuje przegl dark internetow o tym,
        jakiej definicji typu dokumentu trzymaá si programista tworz cy dan stron inter-
        netow . Deklaracja ta jest niezwykle wa na w dokumencie internetowym stworzonym
        w j zyku znaczników XHTML. Bez poprawnie zdefiniowanej deklaracji DOCTYPE adna
        przegl darka internetowa nie zweryfikuje kodu znaczników XHTML i stylu CSS.
        W efekcie pojawi si problemy, gdy przegl darka internetowa nie b dzie potrafiáa
        obsáu yü, tj. sprawdziü i poprawnie wy wietliü, strony internetowej. Po deklaracji
        DOCTYPE znajduje si deklaracja typu przestrzeni nazw XHTML. Przestrze ta jest
        kolekcj typów elementów i nazw atrybutów skojarzonych z definicj typu dokumentu
        internetowego. Deklaracja przestrzeni nazw pozwala zidentyfikowaü swoj przestrze
        nazw przez wskazanie jej lokalizacji (http://www.w3.org/1999/xhtml).
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                       279


Deklaracja typu kodowania znaków
        Aby dokumenty internetowe utworzone za pomoc j zyka znaczników o nazwie XHTML
        mogáy byü poprawnie zinterpretowane przez dowoln przegl dark internetow i przej ü
        pomy lnie wszystkie testy sprawdzaj ce, musz deklarowaü tzw. typ kodowania zna-
        ków u yty do ich stworzenia. W przypadku aplikacji Obsáuga bazy danych programu
        Microsoft SQL Server z poziomu skryptów PHP jest to charset=iso-8859-2, zgodnie
        z tym, co zostaáo przedstawione na listingu 6.3.

Listing 6.3. Deklaracja typu kodowania znaków w dokumencie internetowym (index.php)
           <head>
             <title>Obs uga bazy danych programu Microsoft SQL Server z poziomu skryptów
             PHP</title>
             <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
             <link href="style.css" type="text/css" rel="stylesheet" />
           </head>


        Jak widaü na powy szym listingu, typ kodowania znaków, który zapewnia popraw-
        ne wy wietlanie znaków narodowych, zostaá zadeklarowany za pomoc elementu
        http-equiv="content-type" umieszczonego w elemencie <meta… /> cz ci nagáówko-
        wej dokumentu internetowego, czyli pomi dzy znacznikami <head>…</head>. Zaznaczo-
        ny na listingu 6.3 czcionk pogrubion wiersz pokazuje zapis dla kodowania iso-8859-2.
        Takie oznaczenie nosi polska strona kodowa, tj. dla polskich czcionek.

           W przypadku tworzenia miödzynarodowej witryny czy aplikacji internetowej, która
           bödzie zawieraè znaki niewystöpujñce w kodzie ASCI, nale y u yè kodowania utf-8
           zamiast iso-8859-2.


        Standard ISO 8859 stworzony zostaá w poáowie lat 80. XX w. przez Europejskie Sto-
        warzyszenie Producentów Komputerów. Jest on seri standaryzowanych wieloj zycz-
        nych zestawów znaków graficznych, które s kodowane na jednym bajcie (1 B), czyli
        8 bitach (1 B = 8 bitów). Jednym z tych zestawów jest wspomniany ju wy ej standard
        iso-8859-2.


Deklaracja typu arkusza stylów
        Kaskadowe arkusze stylów mog wyst powaü jako zewn trzne, byü osadzone w ko-
        dzie XHTML danej witryny internetowej lub wyst powaü w tzw. miejscu (ang. inline).
        W niniejszej ksi ce zostanie omówione jedynie pierwsze z tych wyst pie arkuszy
        stylów. Dlaczego? Otó dlatego, e przy zastosowaniu zewn trznych arkuszy stylów
        otrzymujemy szereg wymiernych korzy ci, które wynikaj choüby ze znacznego zmniej-
        szenia obci enia serwera internetowego czy á czy internetowych. Poza tym s one
        obsáugiwane przez wi kszo ü popularnych przegl darek internetowych (w tym rów-
        nie Internet Explorer, która jest skáadnikiem systemów operacyjnych z rodziny Micro-
        soft Windows).
280               PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


        Zewn trzny arkusz stylów, czyli plik z rozszerzeniem .css (np. style.css, który jest do-
        st pny pod adresem ftp://ftp.helion.pl/przyklady/phiisq.zip w folderze Skrypty PHP, a jego
        przykáadowa zawarto ü zostaáa pokazana na rysunku 6.3), jest dokumentem tekstowym
        zawieraj cym kod CSS w postaci okre lonych reguá CSS. Mo e on byü wykorzystany
        z powodzeniem na stronie internetowej zgodnej ze standardami sieciowymi. Inaczej
        mówi c, strona internetowa XHTML mo e u ywaü pliku z rozszerzeniem .css (pliku
        arkusza stylów), odwoáuj c si do niego poprzez element o nazwie link, który zostaá
        umieszczony w nagáówku dokumentu internetowego, tj. w sekcji <head>…</head>.




Rysunek 6.3. Przykáadowa zawarto ü pliku style.css

        Przykáadowy element link mo e wygl daü podobnie to tego z listingu 6.4.

Listing 6.4. Deklaracja arkusza stylów w dokumencie internetowym (index.php)
           <head>
             <title>Obs uga bazy danych programu Microsoft SQL Server z poziomu skryptów
             PHP</title>
             <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
             <link href="style.css" type="text/css" rel="stylesheet" />
           </head>



           Reguäa w kodzie CSS jest to kompletne okre lenie stylu skäadajñcego siö z selek-
           tora oraz bloku deklaracji umieszczonych pomiödzy nawiasami klamrowymi, np.
           w postaci: p {font-family: Verdana, sans-serif;}.


        Takie podej cie powoduje, e plik ten jest podá czany w trakcie pierwszego urucho-
        mienia skryptu PHP o nazwie index.php, w którym zadeklarowany zostaá arkusz sty-
        lów CSS. Zmniejsza to nie tylko obci enie samego serwera internetowego, ale i á cz,
        za pomoc których plik ten jest wywoáywany.
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                    281



Konfigurowanie obsäugi
bazy danych w PHP
       Gdy ju poznali my podstawowe elementy j zyków SQL, PHP czy XHTML, a tak e
       utworzyli my relacyjn baz danych o nazwie WirtualnySklep wraz z poszczególnymi
       jej tabelami bazowymi w programie Microsoft SQL Server 2005, mo emy przyst piü
       do skonfigurowania obsáugi tej e bazy z poziomu skryptów PHP.

       W niniejszym podrozdziale skupimy si gáównie na klientach wirtualnego sklepu, tj. na
       obsáudze tabeli bazowej o nazwie tKlienci, która znajduje si w relacyjnej bazie danych
       o nazwie WirtualnySklep. To wáa nie na jej przykáadzie zostanie zaprezentowany do-
       st p do serwera bazy danych Microsoft SQL Server 2005 z poziomu skryptów PHP
       (za pomoc wbudowanych funkcji obsáuguj cych tego typu baz danych), do relacyj-
       nej bazy danych WirtualnySklep oraz jej tabeli bazowej tKlienci, a tak e wszelkiego
       rodzaju operacje zwi zane z dodawaniem, odczytywaniem, modyfikacj , usuwaniem czy
       wyszukiwaniem danych.

       Aby w ogóle mo liwa byáa jakakolwiek komunikacja pomi dzy baz danych progra-
       mu Microsoft SQL Server 2005 a interpreterem PHP, nale y wykonaü pewne wst pne
       kroki konfiguracyjne, które zostan opisane w tym podrozdziale. W przypadku j zyka
       PHP w wersji 5.2.5 ka demu serwerowi baz danych odpowiada dynamiczna bibliote-
       ka, czyli zazwyczaj jaki plik z rozszerzeniem .dll, który znajduje si w katalogu in-
       stalacyjnym PHP z rozszerzeniami, tj. C:PHP5ext. Plik ten zawiera zbiór okre lo-
       nych z góry funkcji, które s wykorzystywane w komunikacji z okre lon relacyjn
       baz danych.

       Przykáadowa zawarto ü katalogu rozszerze j zyka PHP w wersji 5.2.5 zostaáa przed-
       stawiona na rysunku 6.4. Warto tu dodaü, e w przypadku bazy danych programu Micro-
       soft SQL Server 2005 bardzo wa ne s dwa pliki: php_mssql.dll (znajduj cy si w loka-
       lizacji C:PHP5ext) oraz ntwdblib.dll (znajduj cy si w lokalizacji C:PHP5), który
       do dziaáania wymaga wspomnianej biblioteki php_mssql.dll. W przypadku innych baz
       danych, np. Oracle Database, niezwykle wa ny jest plik php_oci8.dll, dla MySQL
       AB MySQL — php_mysql.dll, z kolei dla bazy danych PostgreSQL Global Development
       Group PostgreSQL — php_pgsql.dll.

       Po czystej instalacji bazy danych programu Microsoft SQL Server 2005 oraz dodatku
       Service Pack 2 dla tego programu, która zostaáa przedstawiona szczegóáowo w po-
       przednim rozdziale, nale y uruchomiü na komputerze klienta EA-K1 przegl dark inter-
       netow i wpisaü jako adres URL http://ea-sql2005. Po wybraniu klawisza Enter zostanie
       wy wietlona testowa aplikacja internetowa Obsáuga bazy danych programu Microsoft
       SQL Server z poziomu skryptów PHP, której okno gáówne zostaáo przedstawione
       wcze niej, tj. na rysunku 6.2. Po klikni ciu odno nika polacz_z_serwerem.php, za po-
       moc którego mo na przetestowaü poá czenie z serwerem bazy danych o nazwie EA-
       SQL2005 z poziomu skryptu PHP, pojawi si „pusta strona internetowa” — zgodnie
       z tym, co zostaáo pokazane na rysunku 6.5. Termin „pusta strona internetowa” nale y
       tutaj rozumieü jako „strona bez przetworzonego kodu PHP”, tj. kodu znajduj cego si
       pomi dzy znacznikami j zyka PHP <?php //… ?>. Czyli inaczej mówi c, bez kodu
282                PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


Rysunek 6.4.
Zawarto ü katalogu
C:PHP5ext
z plikami do obsáugi
ró nych typów
relacyjnych
baz danych




         pokazanego na listingu 6.5, który pochodzi z pliku polacz_z_serwerem.php. Plik ten, jak
         ju wiemy, znajduje si w katalogu gáównym serwera internetowego EA-SQL2005,
         tj. C:Inetpubwwwroot. Wy wietlany jest jedynie statyczny kod strony internetowej,
         tj. kod HTML. Dlaczego tak si dzieje? Otó dzieje si tak z kilku przedstawionych
         poni ej powodów.
            Brak w katalogu %SystemRoot%system32 serwera czáonkowskiego EA-SQL2005
              (na którym dziaáa interpreter PHP 5.2.5 i usáugi IIS 6.0) bardzo wa nego pliku
              o nazwie ntwdblib.dll, który dostarczany jest wraz z interpreterem PHP 5.2.5,
              czyli z repozytorium o nazwie php-5.2.5-Win32.zip. W przypadku programu
              Microsoft SQL Server 2000 plik ten jest domy lnie instalowany
              w powy szym katalogu.
            Wyá czone jest rozszerzenie php_mssql.dll w sekcji Windows Extensions
              pliku konfiguracyjnego %SystemRoot%php.ini, które po domy lnej instalacji
              interpretera PHP 5.2.5 nie jest aktywne (znak rednika w linii ;extension=
              ´php_mssql.dll, który oznacza komentarz). Jak pami tamy, polecenia ze
              znakiem komentarza nie s wczytywane do pami ci operacyjnej serwera
              czáonkowskiego podczas uruchamiania interpretera PHP.
            Nie zostaáa poprawnie zdefiniowana cie ka w dyrektywie extension_dir
             = "C:PHP5ext" pliku konfiguracyjnego %SystemRoot%php.ini, która
             po domy lnej instalacji interpretera PHP 5.2.5 ma postaü extension_dir = "./".
              Powoduje to, e nie mo e byü wczytany plik php_mssql.dll, który znajduje si
              w katalogu rozszerze PHP.
            Dodatkowo — w przypadku gdy PHP wykorzystuje rozszerzenie CGI
              (plik wykonywalny php-cgi.exe zamiast php5isapi.dll) — nie zostaáa
              wá czona (odpowiednio skonfigurowana) w pliku konfiguracyjnym
              %SystemRoot%php.ini linijka tekstu ;cgi.force_redirect = 1. Nale y j
              wá czyü, usuwaj c znak rednika, który, jak wiemy, jest komentarzem,
              i ustawiü na warto ü 0. Poprawna linijka kodu powinna wygl daü tak:
              cgi.force_redirect = 0.
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                       283




Rysunek 6.5. Negatywny wynik testowania poá czenia z serwerem bazy danych programu Microsoft
SQL Server 2005 z poziomu skryptu polacz_z_serwerem.php

Listing 6.5. Kod PHP realizuj cy poá czenie z serwerem bazy danych programu
Microsoft SQL Server 2005 (polacz_z_serwerem.php)
           <?php
              require_once('funkcje.php');
              polacz_z_serwerem_bd();
           ?>


        Jak widaü na powy szym listingu, wykorzystana zostaáa instrukcja require_once()
        pozwalaj ca na zaáadowanie pliku funkcje.php do skryptu PHP i wywoáana funkcja
        polacz_z_serwerem_bd(), która znajduje si w tym pliku. Funkcja ta zawiera para-
        metry potrzebne do zestawienia poá czenia z serwerem bazy danych Microsoft SQL
        Server 2005, który dziaáa na serwerze czáonkowskim o nazwie EA-SQL2005, oraz obsáu-
        gi bá dów, jakie mog wyst piü podczas zestawiania tego poá czenia.

        Biblioteka dynamiczna ntwdblib.dll, która do dziaáania wymaga innej biblioteki
        — php_mssql.dll, znajduje si w katalogu instalacji interpretera PHP, czyli C:PHP5
        (po rozpakowaniu repozytorium php-5.2.5-Win32.zip), oraz jest wykorzystywana pod-
        czas dost pu do relacyjnej bazy danych programu Microsoft SQL Server 2005 z po-
        ziomu skryptów PHP. Plik ten wykorzystywany jest w komunikacji z serwerem bazy
        danych Microsoft SQL Server 2005.

           Ze wzglödu na szybko è wykonywania skryptów PHP najlepiej jest, kiedy zarówno PHP,
           jak i Microsoft SQL Server 2005 dziaäajñ na tym samym komputerze.
284               PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


        Aby istniaáa mo liwo ü odczytywania plików z rozszerzeniami .php (skryptów PHP)
        i wy wietlania wyników ich dziaáania z poziomu przegl darki internetowej klienta
        EA-K1, nale y wykonaü poni sze kroki na serwerze czáonkowskim EA-SQL2005,
        na którym zostaáy zainstalowane:
                interpreter skryptów PHP w wersji 5.2.5,
                serwer internetowy IIS w wersji 6.0,
                serwer bazy danych Microsoft SQL Server 2005.
          1. Skopiowaü plik ntwdblib.dll z katalogu C:PHP5 do katalogu %SystemRoot%
             ´system32. Mo na to wykonaü bardzo szybko np. za pomoc komendy
             wydanej z okna Wiersz polecenia: copy C:PHP5ntwdblib.dll %SystemRoot%
             ´system32.
          2. Zatrzymaü i ponownie uruchomiü usáugi IIS 6.0 na serwerze czáonkowskim
             EA-SQL2005 — zgodnie z tym, co przedstawia rysunek 6.6 — czyli z poziomu
             konsoli Mened er internetowych usáug informacyjnych (IIS), któr mo na
             uruchomiü za pomoc komendy inetmgr (wydanej z poziomu okna dialogowego
             Uruchamianie) lub start inetmgr (wydanej z poziomu okna Wiersz polecenia).




Rysunek 6.6. Ponowne uruchamianie usáugi IIS na serwerze czáonkowskim EA-SQL2005

          3. W oknie dialogowym o nazwie Zatrzymywanie/uruchamianie/uruchamianie
             ponowne…, które zostaáo przedstawione na rysunku 6.7, nale y sprawdziü,
             czy wybrana jest czynno ü Uruchom ponownie Usáugi internetowe
             na EA-SQL2005, i klikn ü przycisk OK.
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                       285


Rysunek 6.7.
Okno dialogowe
o nazwie
Zatrzymywanie/
uruchamianie/
uruchamianie
ponowne…




           Zatrzymanie i ponowne uruchomienie usäug IIS 6.0 na serwerze czäonkowskim
           EA-SQL2005 mo na szybko wykonaè za pomocñ nastöpujñcej komendy wiersza
           poleceþ: iisreset EA-SQL2005.


          4. Sprawdziü w skryptach PHP, czy zostaáy zdefiniowane poprawnie takie
                zmienne, jak: nazwa serwera bazy danych Microsoft SQL Server 2005 (EA-
                SQL2005), nazwa u ytkownika (sa) i hasáo (27aB.#cd75) — zgodnie z tym, co
                przedstawia listing 6.6. Dodatkowo nale y te sprawdziü zmienn
                $bazaDanych, która powinna mieü przypisan nazw WirtualnySklep, czyli
                $bazaDanych = 'WirtualnySklep'. Zmienna ta nie jest potrzebna w przypadku
                nawi zywania poá czenia z samym serwerem bazy danych Microsoft SQL
                Server 2005. Jest za to wr cz niezb dna w pozostaáych skryptach PHP, które
                np. operuj na danych zgromadzonych w tabeli bazowej tKlienci.

Listing 6.6. Zmienne wymagane do poá czenia z serwerem bazy danych Microsoft SQL Server 2005
i baz danych WirtualnySklep
           <?php
             $nazwaSerwera = 'EA-SQL2005';
             $bazaDanych = 'WirtualnySklep';
             $nazwaUzytkownika = 'sa';
             $hasloUzytkownika = '27aB.#cd75';

                /*
                  blok kodu skryptu PHP
                */
           ?>


        Po wykonaniu powy szych kroków próba poá czenia za pomoc przegl darki inter-
        netowej klienta EA-K1 z serwerem bazy danych Microsoft SQL Server 2005 z po-
        ziomu skryptu PHP (za pomoc adresu http://ea-sql2005/polacz_z_serwerem.php)
        powinna si powie ü, co przedstawia rysunek 6.8, czyli komunikat o tre ci [+] Poá -
        czono si z serwerem bazy danych. Je eli tak si stanie, to mo emy zaáo yü, e odt d
        mo liwa jest komunikacja nie tylko pomi dzy relacyjna baz danych programu Micro-
        soft SQL Server 2005 a interpreterem PHP 5.2.5, ale tak e pomi dzy serwerem IIS 6.0
286              PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych




Rysunek 6.8. Pozytywny wynik testowania poá czenia z serwerem bazy danych programu
Microsoft SQL Server 2005 z poziomu skryptu polacz_z_serwerem.php

        i przegl dark internetow klienta EA-K1. Inaczej mówi c, mo liwa jest obsáuga bazy
        danych programu Microsoft SQL Server 2005 z poziomu aplikacji internetowej Ob-
        sáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP, która
        znajduje si na serwerze internetowym IIS 6.0 (w katalogu gáównym tego serwera).

        W razie problemów z podá czeniem si do serwera bazy danych Microsoft SQL Server
        2005 z poziomu skryptu PHP o nazwie polacz_z_serwerem.php nale y sprawdziü usta-
        wienia w pliku konfiguracyjnym w katalogu %SystemRoot%php.ini. Najwa niejsze
        ustawienia zostaáy zaprezentowane w podrozdziale „Instalowanie i konfigurowanie PHP
        w systemie Windows” niniejszej ksi ki.



Obsäuga bazy danych
z poziomu skryptów PHP
        Obsáug relacyjnej bazy danych o nazwie WirtualnySklep znajduj cej si na serwerze
        bazy danych Microsoft SQL Server 2005 o nazwie EA-SQL2005 (z poziomu skryptu
        PHP, np. select.php, który jest dost pny pod adresem ftp://ftp.helion.pl/przyklady/
        ´phiisq.zip w folderze Skrypty PHP) mo na podzieliü na pi ü poni ej przedstawio-
        nych kroków.

        Krok 1. Nawi zanie poá czenia z serwerem bazy danych programu Microsoft SQL
        Server 2005 o nazwie EA-SQL2005.
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                           287


        Przykáadowy kod PHP zostaá przedstawiony na listingu 6.7. Istotne elementy kodu PHP
        zostaáy zaznaczone tekstem pogrubionym.

Listing 6.7. Nawi zanie poá czenia z serwerem bazy danych programu Microsoft SQL Server 2005
o nazwie EA-SQL2005
           <?php
             $nazwaSerwera = 'EA-SQL2005';
             $bazaDanych = 'WirtualnySklep';
             $nazwaUzytkownika = 'sa';
             $hasloUzytkownika = '27aB.#cd75';

                $polacz_z_serwerem = @mssql_connect($nazwaSerwera,
                                                    $nazwaUzytkownika,
                                                    $hasloUzytkownika)
                                                    or die("[-] Nie mo na po æczyè siú z serwerem
                                                    bazy danych!<br /><br />");

                /*
                     kod skryptu PHP
                */
           ?>


        Krok 2. Nawi zanie poá czenia z relacyjn baz danych o nazwie WirtualnySklep,
        która znajduje si na serwerze bazy danych programu Microsoft SQL Server 2005
        o nazwie EA-SQL2005.

        Przykáadowy kod PHP zostaá przedstawiony na listingu 6.8. Jego istotne elementy zo-
        staáy zaznaczone tekstem pogrubionym.

Listing 6.8. Nawi zanie poá czenia z relacyjn baz danych o nazwie WirtualnySklep
           <?php
             $nazwaSerwera = 'EA-SQL2005';
             $bazaDanych = 'WirtualnySklep';
             $nazwaUzytkownika = 'sa';
             $hasloUzytkownika = '27aB.#cd75';

                $polacz_z_serwerem = @mssql_connect($nazwaSerwera,
                                                    $nazwaUzytkownika,
                                                    $hasloUzytkownika)
                                                    or die("[-] Nie mo na po æczyè siú z serwerem
                                                    bazy danych!<br /><br />");

                $polacz_z_baza = @mssql_select_db($bazaDanych,
                                                  $polacz_z_serwerem)
                                                  or die("[-] Nie mo na po æczyè siú z bazæ
                                                  danych!<br /><br />");

                /*
                     kod skryptu PHP
                */
           ?>
288                     PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


         Krok 3. Wysáanie zapytania SQL do tabeli bazowej tKlienci relacyjnej bazy danych
         WirtualnySklep programu Microsoft SQL Server 2005 o nazwie EA-SQL2005.

         Przykáadowy kod zostaá przedstawiony na listingu 6.9. Jego istotne elementy zostaáy
         zaznaczone tekstem pogrubionym.

Listing 6.9. Wysáanie zapytania SQL do tabeli bazowej tKlienci
            <?php
              /*
                 kod skryptu PHP
              */

                  $zapytanie = "SELECT *
                               FROM tKlienci";

                 /*
                      kod skryptu PHP
                 */
            ?>


         Krok 4. Pobranie i wykorzystanie otrzymanych wyników (np. wy wietlenie zawarto-
          ci tabeli bazowej tKlienci relacyjnej bazy danych WirtualnySklep) w postaci statycznej
         tabeli HTML.

         Przykáadowy kod zostaá pokazany na listingu 6.10. Jego istotne elementy zostaáy za-
         znaczone tekstem pogrubionym.

Listing 6.10. Pobranie i wykorzystanie otrzymanych wyników w postaci statycznej tabeli HTML
            <?php
              /*
                 kod skryptu PHP
              */

                  $wynik = @mssql_query($zapytanie);

                  if (!$wynik)
                    {
                      echo "[-] Wykonanie zapytania nie powiod o siú!<br /><br />";
                      exit;
                    }
                    else
                      {
                        echo "<table cellspacing='3' cellpadding='5'>";
                        echo "<tr bgcolor='#dddddd' align='left'>";
                        echo "<th>Nr ID</th>
                              <th>Nazwisko</th>
                              <th>Imiú</th>
                              <th>Ulica</th>
                              <th>Kod poczt.</th>
                              <th>Miejscowo è</th>
                              <th>Województwo</th>
                              <th>Telefon</th>
                              <th>Email</th>";
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                      289


                             echo "</tr>";
                             while ($wiersz = @mssql_fetch_array($wynik))
                               {
                                 echo "<tr align='left'>";
                                 echo "<td>".$wiersz['KlientID']."</td>";
                                 echo "<td>".$wiersz['Nazwisko']."</td>";
                                 echo "<td>".$wiersz["Imie"]."</td>";
                                 echo "<td>".$wiersz["Ulica"]."</td>";
                                 echo "<td>".$wiersz["KodPocztowy"]."</td>";
                                 echo "<td>".$wiersz["Miejscowosc"]."</td>";
                                 echo "<td>".$wiersz["Wojewodztwo"]."</td>";
                                 echo "<td>".$wiersz["Telefon"]."</td>";
                                 echo "<td>".$wiersz["Email"]."</td>";
                                 echo "</tr>";
                               }
                             echo "</table>";
                         }

                /*
                     kod skryptu PHP
                */
           ?>


        Krok 5. Zwolnienie zaj tych zasobów serwera bazy danych Microsoft SQL Server 2005
        o nazwie EA-SQL2005 (gáównie jego pami ci operacyjnej RAM) przez zmienne $wynik
        i $polacz_z_serwerem oraz zamkni cie poá czenia z tym serwerem bazy danych.

        Przykáadowy kod PHP zostaá przedstawiony na listingu 6.11. Jego istotne elementy zo-
        staáy zaznaczone tekstem pogrubionym.

Listing 6.11. Zwolnienie zaj tych zasobów serwera bazy danych Microsoft SQL Server 2005
o nazwie EA-SQL2005 i zamkni cie poá czenia z tym serwerem
           <?php
             /*
               blok kodu skryptu PHP
             */

                  @mssql_free_result($wynik);
                  @mssql_close($polacz_z_serwerem);

                /*
                  blok kodu skryptu PHP
                */
           ?>


        Reasumuj c, spróbujmy okre liü, jakie czynno ci wykonuje skrypt PHP o nazwie
        select.php. W skrócie mo na przedstawiü je w nast puj cych krokach.

        Krok 1. Na samym pocz tku zestawiane jest poá czenie z serwerem bazy danych
        Microsoft SQL Server 2005 o nazwie EA-SQL2005, na którym znajduje si relacyjna
        baza danych o nazwie WirtualnySklep — przy u yciu funkcji wewn trznej PHP
        mssql_connect(), której podstawowymi parametrami s :
290            PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych


         nazwa serwera bazy danych Microsoft SQL Server 2005 (EA-SQL2005),
         nazwa u ytkownika (sa), którego konto ma przyznane odpowiednie
          uprawnienia do relacyjnej bazy danych WirtualnySklep,
         hasáo u ytkownika (27aB.#cd75).

      Krok 2. Kiedy poá czenie z serwerem bazy danych Microsoft SQL Server 2005 o na-
      zwie EA-SQL2005 zostanie pomy lnie nawi zane, wynikiem dziaáania funkcji o nazwie
      mssql_connect() b dzie identyfikator poá czenia (np. Resource id #1), który jest prze-
      chowywany w zmiennej o nazwie $polacz_z_serwerem. W przypadku jakichkolwiek
      problemów z poá czeniem z serwerem bazy danych zostanie wy wietlony (przy wyko-
      rzystaniu funkcji o nazwie die()) komunikat bá du o nast puj cej tre ci: [-] Nie mo na
      poá czyü si z serwerem bazy danych!.

      Krok 3. Po poprawnym zestawieniu poá czenia z serwerem bazy danych Microsoft
      SQL Server 2005 o nazwie EA-SQL2005 kolejnym krokiem jest wybranie (za pomoc
      funkcji o nazwie mssql_select_db()) relacyjnej bazy danych WirtualnySklep, która znaj-
      duje si na tym serwerze.

      Krok 4. Je eli nie wyst pi aden krytyczny bá d (identyfikator poá czenia wynosi 1),
      kolejnym krokiem b dzie utworzenie zmiennej $zapytanie, która b dzie przechowy-
      waáa instrukcj SQL, tj. zdefiniowane zapytanie j zyka SQL.

      Krok 5. W nast pnym kroku tworzona jest zmienna $wynik, która przechowuje iden-
      tyfikator wyniku zapytania przeprowadzonego przez funkcj o nazwie mssql_query().
      Kiedy zapytanie zostanie poprawnie wykonane (nie pojawi si komunikat o tre ci [-]
      Wykonanie zapytania nie powiodáo si !), wtedy wydzielane s wiersze wyniku za po-
      moc funkcji PHP o nazwie mssql_fetch_array(), które s przechowywane w zmiennej
      $wynik. Wcze niej jednak jest tworzona statyczna tabela HTML. P tla while tworzy
      tablic o nazwie $wiersz dla ka dego rekordu wynikowego. Wiersze s podstawiane
      do tablicy dopóty, dopóki warto ci caáego wyra enia nie b dzie warto ü False. Ma to
      miejsce wówczas, gdy nie ma ju wi cej wierszy do przetworzenia. Wtedy p tla while
      ko czy swoje dziaáanie.

      Krok 6. Na ko cu skryptu PHP nast puje zwolnienie wykorzystywanych do przepro-
      wadzenia zapytania SQL zasobów systemowych (gáównie pami ci operacyjnej RAM
      serwera czáonkowskiego o nazwie EA-SQL2005) — przy wykorzystaniu funkcji wbu-
      dowanej PHP o nazwie mssql_free_result(), oraz zamkni cie poá czenia z serwerem
      bazy danych Microsoft SQL Server 2005. Odpowiedzialna jest za to funkcja wewn trz-
      na j zyka PHP o nazwie mssql_close().

        U ycie funkcji wewnötrznej PHP o nazwie mssql_close() (na koþcu skryptu PHP)
        nie jest wymagane, gdy poäñczenia nietrwaäe (ang. nonpersistent) sñ automatycznie
        zamykane po zakoþczeniu dziaäania tego skryptu. Niemniej jednak dobrym nawykiem
        programistycznym jest, aby zwalniaè zajmowane przez zmienne zasoby oraz zamykaè
        otwarte poäñczenia z relacyjnñ bazñ danych.
Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP                   291


        Wynik skryptu PHP select.php, który zostaá wywoáany z poziomu przegl darki inter-
        netowej komputera klienta EA-K1 pracuj cego pod kontrol systemu operacyjnego
        Microsoft Windows Vista Business, zostaá pokazany na rysunku 6.9. Jak widaü na
        tym rysunku, w wyniku dania o tre ci http://ea-sql2005/select.php zwróconych zo-
        staáo pi ü przykáadowych rekordów z relacyjnej bazy danych WirtualnySklep, która
        znajduje si na serwerze czáonkowskim o nazwie EA-SQL2005.




Rysunek 6.9. Wynik wykonania skryptu PHP o nazwie select.php




Podstawowe funkcje PHP obsäugujñce
bazö danych Microsoft SQL Server
        Jak ju wspomniano na pocz tku niniejszego rozdziaáu, interpreter j zyka skryptowego
        PHP w wersji 5.2.5 posiada wbudowan obsáug ró nych typów baz danych (w tym
        bazy danych programu Microsoft SQL Server 2005) za pomoc wewn trznych funkcji.
        Oznacza to tyle, e wiele popularnych typów serwerów baz danych jest obsáugiwanych
        z poziomu skryptów PHP.

        W niniejszej ksi ce zostan opisane wybrane funkcje j zyka PHP, za pomoc których
        mo liwy jest dost p z poziomu kodu PHP do bazy danych programu Microsoft SQL
        Server 2005.

Contenu connexe

Tendances

PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIWydawnictwo Helion
 
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWitryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWydawnictwo Helion
 
Oracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwościOracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwościWydawnictwo Helion
 
Oracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawOracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawWydawnictwo Helion
 
mod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoramod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoraWydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIWydawnictwo Helion
 
Pierwsze miejsce-w-wyszukiwarkach
Pierwsze miejsce-w-wyszukiwarkachPierwsze miejsce-w-wyszukiwarkach
Pierwsze miejsce-w-wyszukiwarkachPrzemysław Wolny
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active DirectoryWydawnictwo Helion
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startPHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startWydawnictwo Helion
 
Access 2002/XP PL dla każdego
Access 2002/XP PL dla każdegoAccess 2002/XP PL dla każdego
Access 2002/XP PL dla każdegoWydawnictwo Helion
 
Oracle9i. Podręcznik administratora baz danych
Oracle9i. Podręcznik administratora baz danychOracle9i. Podręcznik administratora baz danych
Oracle9i. Podręcznik administratora baz danychWydawnictwo Helion
 

Tendances (20)

SQL. Od podstaw
SQL. Od podstawSQL. Od podstaw
SQL. Od podstaw
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
 
Oracle Discoverer
Oracle DiscovererOracle Discoverer
Oracle Discoverer
 
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWitryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
 
SQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowySQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowy
 
Oracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwościOracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwości
 
Access 2003 PL. Kurs
Access 2003 PL. KursAccess 2003 PL. Kurs
Access 2003 PL. Kurs
 
100 sposobów na Access
100 sposobów na Access100 sposobów na Access
100 sposobów na Access
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Oracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawOracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstaw
 
mod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoramod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratora
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
 
Jak działa Linux
Jak działa LinuxJak działa Linux
Jak działa Linux
 
Delphi 7 i bazy danych
Delphi 7 i bazy danychDelphi 7 i bazy danych
Delphi 7 i bazy danych
 
Po prostu Excel 2007 PL
Po prostu Excel 2007 PLPo prostu Excel 2007 PL
Po prostu Excel 2007 PL
 
Pierwsze miejsce-w-wyszukiwarkach
Pierwsze miejsce-w-wyszukiwarkachPierwsze miejsce-w-wyszukiwarkach
Pierwsze miejsce-w-wyszukiwarkach
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active Directory
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startPHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki start
 
Access 2002/XP PL dla każdego
Access 2002/XP PL dla każdegoAccess 2002/XP PL dla każdego
Access 2002/XP PL dla każdego
 
Oracle9i. Podręcznik administratora baz danych
Oracle9i. Podręcznik administratora baz danychOracle9i. Podręcznik administratora baz danych
Oracle9i. Podręcznik administratora baz danych
 

En vedette

Excel 2007 PL. Programowanie w VBA
Excel 2007 PL. Programowanie w VBAExcel 2007 PL. Programowanie w VBA
Excel 2007 PL. Programowanie w VBAWydawnictwo Helion
 
Total Commander. Leksykon kieszonkowy
Total Commander. Leksykon kieszonkowyTotal Commander. Leksykon kieszonkowy
Total Commander. Leksykon kieszonkowyWydawnictwo Helion
 
Mac OS X Tiger. Skuteczne rozwiązania
Mac OS X Tiger. Skuteczne rozwiązaniaMac OS X Tiger. Skuteczne rozwiązania
Mac OS X Tiger. Skuteczne rozwiązaniaWydawnictwo Helion
 
Flash CS3 Professional PL. Klatka po klatce
Flash CS3 Professional PL. Klatka po klatceFlash CS3 Professional PL. Klatka po klatce
Flash CS3 Professional PL. Klatka po klatceWydawnictwo Helion
 
Eclipse Web Tools Platform. Tworzenie aplikacji WWW w języku Java
Eclipse Web Tools Platform. Tworzenie aplikacji WWW w języku JavaEclipse Web Tools Platform. Tworzenie aplikacji WWW w języku Java
Eclipse Web Tools Platform. Tworzenie aplikacji WWW w języku JavaWydawnictwo Helion
 
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyceKompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyceWydawnictwo Helion
 
Adobe Illustrator CS3/CS3 PL. Oficjalny podręcznik
Adobe Illustrator CS3/CS3 PL. Oficjalny podręcznikAdobe Illustrator CS3/CS3 PL. Oficjalny podręcznik
Adobe Illustrator CS3/CS3 PL. Oficjalny podręcznikWydawnictwo Helion
 
Adobe Flash CS3 Professional. Oficjalny podręcznik
Adobe Flash CS3 Professional. Oficjalny podręcznikAdobe Flash CS3 Professional. Oficjalny podręcznik
Adobe Flash CS3 Professional. Oficjalny podręcznikWydawnictwo Helion
 
MS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektami
MS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektamiMS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektami
MS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektamiWydawnictwo Helion
 
Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce
Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatceFlash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce
Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatceWydawnictwo Helion
 
Sieci VPN. Zdalna praca i bezpieczeństwo danych
Sieci VPN. Zdalna praca i bezpieczeństwo danychSieci VPN. Zdalna praca i bezpieczeństwo danych
Sieci VPN. Zdalna praca i bezpieczeństwo danychWydawnictwo Helion
 

En vedette (12)

Excel 2007 PL. Programowanie w VBA
Excel 2007 PL. Programowanie w VBAExcel 2007 PL. Programowanie w VBA
Excel 2007 PL. Programowanie w VBA
 
Total Commander. Leksykon kieszonkowy
Total Commander. Leksykon kieszonkowyTotal Commander. Leksykon kieszonkowy
Total Commander. Leksykon kieszonkowy
 
Mac OS X Tiger. Skuteczne rozwiązania
Mac OS X Tiger. Skuteczne rozwiązaniaMac OS X Tiger. Skuteczne rozwiązania
Mac OS X Tiger. Skuteczne rozwiązania
 
Flash CS3 Professional PL. Klatka po klatce
Flash CS3 Professional PL. Klatka po klatceFlash CS3 Professional PL. Klatka po klatce
Flash CS3 Professional PL. Klatka po klatce
 
Eclipse Web Tools Platform. Tworzenie aplikacji WWW w języku Java
Eclipse Web Tools Platform. Tworzenie aplikacji WWW w języku JavaEclipse Web Tools Platform. Tworzenie aplikacji WWW w języku Java
Eclipse Web Tools Platform. Tworzenie aplikacji WWW w języku Java
 
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyceKompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
 
Adobe Illustrator CS3/CS3 PL. Oficjalny podręcznik
Adobe Illustrator CS3/CS3 PL. Oficjalny podręcznikAdobe Illustrator CS3/CS3 PL. Oficjalny podręcznik
Adobe Illustrator CS3/CS3 PL. Oficjalny podręcznik
 
Adobe Flash CS3 Professional. Oficjalny podręcznik
Adobe Flash CS3 Professional. Oficjalny podręcznikAdobe Flash CS3 Professional. Oficjalny podręcznik
Adobe Flash CS3 Professional. Oficjalny podręcznik
 
MS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektami
MS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektamiMS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektami
MS Project 2007 i MS Project Server 2007. Efektywne zarządzanie projektami
 
ABC MS Office 2007 PL
ABC MS Office 2007 PLABC MS Office 2007 PL
ABC MS Office 2007 PL
 
Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce
Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatceFlash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce
Flash CS3 Professional PL. Techniki zaawansowane. Klatka po klatce
 
Sieci VPN. Zdalna praca i bezpieczeństwo danych
Sieci VPN. Zdalna praca i bezpieczeństwo danychSieci VPN. Zdalna praca i bezpieczeństwo danych
Sieci VPN. Zdalna praca i bezpieczeństwo danych
 

Similaire à PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych

Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowaneWydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIPHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIWydawnictwo Helion
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIWydawnictwo Helion
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIWydawnictwo Helion
 
PHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawPHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawWydawnictwo Helion
 
Microsoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programistyMicrosoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programistyWydawnictwo Helion
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaWydawnictwo Helion
 
Oracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychOracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychWydawnictwo Helion
 
Bazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawBazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawWydawnictwo Helion
 
PHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowePHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanoweWydawnictwo Helion
 
SQL Server 2005. Wyciśnij wszystko
SQL Server 2005. Wyciśnij wszystkoSQL Server 2005. Wyciśnij wszystko
SQL Server 2005. Wyciśnij wszystkoWydawnictwo Helion
 
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki startPHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki startWydawnictwo Helion
 
PHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędziaPHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędziaWydawnictwo Helion
 

Similaire à PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych (20)

PHP w mgnieniu oka
PHP w mgnieniu okaPHP w mgnieniu oka
PHP w mgnieniu oka
 
Flash i PHP5. Podstawy
Flash i PHP5. PodstawyFlash i PHP5. Podstawy
Flash i PHP5. Podstawy
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowane
 
PHP5. Praktyczny kurs
PHP5. Praktyczny kursPHP5. Praktyczny kurs
PHP5. Praktyczny kurs
 
PHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIPHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie III
 
Access 2007 PL. Kurs
Access 2007 PL. KursAccess 2007 PL. Kurs
Access 2007 PL. Kurs
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
 
PHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawPHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstaw
 
Microsoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programistyMicrosoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programisty
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązania
 
PHP. Rozmówki
PHP. RozmówkiPHP. Rozmówki
PHP. Rozmówki
 
Wprowadzenie do baz danych
Wprowadzenie do baz danychWprowadzenie do baz danych
Wprowadzenie do baz danych
 
Oracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychOracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danych
 
Bazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawBazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstaw
 
PHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowePHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowe
 
SQL Server 2005. Wyciśnij wszystko
SQL Server 2005. Wyciśnij wszystkoSQL Server 2005. Wyciśnij wszystko
SQL Server 2005. Wyciśnij wszystko
 
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki startPHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
PHP6 i MySQL 5. Dynamiczne strony WWW. Szybki start
 
PHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędziaPHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędzia
 
SQL Server 2005
SQL Server 2005SQL Server 2005
SQL Server 2005
 

Plus de Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 

Plus de Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 

PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych

  • 1. PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Autor: Andrzej Szel¹g ISBN: 978-83-246-1513-1 Format: 158x235, stron: 368 Poznaj i wykorzystaj narzêdzia do projektowania baz danych • Jak konfigurowaæ repozytorium PEAR? • Jak przetwarzaæ formularze za pomoc¹ jêzyka PHP? • Jak wprowadzaæ dane do tabeli bazy danych, a póŸniej je usuwaæ? Umiejêtnoœæ tworzenia interaktywnych stron www typu e-commerce i zarz¹dzania nimi jest dzisiaj w³aœciwie niezbêdna. Przydaje siê nie tylko administratorom sieci, ale tak¿e wszystkim informatykom i w³aœcicielom firm. Relacyjne bazy danych stanowi¹ podstawê nowoczesnej aplikacji internetowej, wiêc przede wszystkim nale¿y poznaæ najpopularniejsze jêzyki wykorzystywane podczas pracy na tych bazach: jêzyk skryptowy PHP oraz jêzyk zapytañ SQL, a tak¿e internetowe us³ugi informacyjne (IIS) wystêpuj¹ce w najnowszych serwerowych systemach operacyjnych Microsoft Windows. Ksi¹¿ka „PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych” w przystêpny sposób i na konkretnym przyk³adzie przedstawia zagadnienia dotycz¹ce projektowania, programowania i implementowania relacyjnej bazy danych. Mimo ¿e podrêcznik przeznaczony jest dla osób, które przynajmniej w niewielkim stopniu orientuj¹ siê w tej tematyce, szeroka skala prezentowanych informacji (od prostych zagadnieñ teoretycznych do problemów zaawansowanych technicznie) sprawia, ¿e ka¿dy mo¿e z niego skorzystaæ – aby na przyk³ad nauczyæ siê podstawowych instrukcji jêzyka SQL i PHP, instalowania i konfigurowania ich w systemie Windows, korzystania z us³ug IIS i wreszcie zarz¹dzania w³asn¹ baz¹ danych. • System zarz¹dzania baz¹ danych • Nazwy i typy danych • Indeksy, klucze i schematy • Architektura baz danych • Normalizacja i projektowanie baz danych Wydawnictwo Helion • Œrodowisko jêzyka SQL ul. Koœciuszki 1c • Podstawowe klauzule jêzyka SQL 44-100 Gliwice • Podstawowe w³aœciwoœci jêzyka PHP tel. 032 230 98 63 • Architektura us³ug IIS e-mail: helion@helion.pl • Obs³uga baz danych Microsoft SQL z poziomu PHP • PEAR Znajdziesz tu wszystko, czego potrzebujesz, aby stworzyæ w³asn¹ profesjonaln¹ bazê danych!
  • 2. Spis tre ci Wprowadzenie .................................................................................. 9 Kto powinien przeczytaü t ksi k ? .............................................................................. 10 O czym jest ta ksi ka? .................................................................................................. 11 Informacje o testowym rodowisku sieciowym ............................................................. 13 Przykáady do ksi ki ....................................................................................................... 24 Rozdziaä 1. Podstawy baz danych ..................................................................... 25 Czym jest baza danych? ................................................................................................. 25 System Zarz dzania Baz Danych .................................................................................. 27 Podstawowe poj cia zwi zane z bazami danych ............................................................ 30 Tabele, kolumny i wiersze danych ........................................................................... 31 Nazwy i typy danych ................................................................................................ 36 Indeksy, klucze i schematy ....................................................................................... 38 Architektura baz danych ................................................................................................. 43 Typy baz danych ............................................................................................................. 46 Normalizacja relacyjnej bazy danych ............................................................................. 48 Projektowanie relacyjnej bazy danych ............................................................................ 51 Tworzenie relacyjnej bazy danych ................................................................................. 56 Dodatkowe ródáa informacji ......................................................................................... 68 Rozdziaä 2. Jözyk SQL ...................................................................................... 69 Czym jest SQL? .............................................................................................................. 69 rodowisko j zyka SQL ................................................................................................. 73 Podstawowe instrukcje j zyka SQL ............................................................................... 77 Data Definition Language (DDL) ................................................................................... 78 Instrukcja CREATE DATABASE ........................................................................... 79 Instrukcja CREATE TABLE .................................................................................... 81 Instrukcja CREATE VIEW ...................................................................................... 83 Instrukcja CREATE INDEX .................................................................................... 84 Data Manipulation Language (DML) ............................................................................. 85 Instrukcja INSERT ................................................................................................... 86 Instrukcja SELECT .................................................................................................. 88 Instrukcja UPDATE ................................................................................................. 93 Instrukcja DELETE .................................................................................................. 95 Data Control Language (DCL) ....................................................................................... 96
  • 3. 6 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Podstawowe klauzule j zyka SQL .................................................................................. 97 Klauzula FROM ............................................................................................................. 97 Klauzula WHERE .................................................................................................... 98 Klauzula ORDER BY .............................................................................................. 99 Klauzula GROUP BY ............................................................................................ 100 Klauzula HAVING ................................................................................................. 101 Dodatkowe ródáa informacji ....................................................................................... 102 Rozdziaä 3. PHP ............................................................................................. 103 Czym jest PHP? ............................................................................................................ 104 Podstawowe elementy j zyka PHP ............................................................................... 114 Zmienne i staáe ....................................................................................................... 114 Wyra enia i operatory ............................................................................................ 117 Struktury kontroluj ce ............................................................................................ 124 Funkcje ................................................................................................................... 129 Tablice .................................................................................................................... 131 Podstawowe wáa ciwo ci j zyka PHP .......................................................................... 133 Przetwarzanie formularzy ....................................................................................... 133 Zapis i odczyt plików ............................................................................................. 138 Data i czas .............................................................................................................. 141 Instalowanie PHP w systemie Windows Server 2003 i Windows Vista ....................... 143 Pobieranie PHP ...................................................................................................... 144 Instalowanie i konfigurowanie PHP w systemie Windows .................................... 146 Dodatkowe ródáa informacji ....................................................................................... 156 Rozdziaä 4. Microsoft IIS ................................................................................ 157 Podstawowe informacje o usáugach IIS ........................................................................ 158 Architektura usáug IIS .................................................................................................. 160 Instalowanie serwera IIS 6.0 w systemie Windows Server 2003 .................................. 165 Instalowanie serwera IIS 7.0 w systemie Windows Vista ............................................ 180 Rozszerzenia ISAPI i CGI/FastCGI ............................................................................. 184 Dodawanie obsáugi PHP do serwera IIS 6.0 jako rozszerzenia ISAPI .......................... 185 Dodawanie obsáugi PHP do serwera IIS 7.0 jako rozszerzenia ISAPI .......................... 204 Dodawanie obsáugi PHP do serwera IIS 6.0 jako rozszerzenia CGI ................................... 210 Dodatkowe ródáa informacji ....................................................................................... 218 Rozdziaä 5. Microsoft SQL Server ................................................................... 221 Microsoft SQL Server 2000 .......................................................................................... 222 Wprowadzenie ........................................................................................................ 222 Przygotowanie do instalacji .................................................................................... 223 Wymagania sprz towe i programowe .................................................................... 224 Instalowanie bazy danych programu Microsoft SQL Server 2000 ......................... 225 Instalowanie dodatku Service Pack 4 dla Microsoft SQL Server 2000 .................. 233 Microsoft SQL Server 2005 .......................................................................................... 238 Wprowadzenie ........................................................................................................ 238 Przygotowanie do instalacji .................................................................................... 240 Wymagania sprz towe i programowe .................................................................... 241 Instalowanie bazy danych programu Microsoft SQL Server 2005 ......................... 241 Instalowanie dodatku Service Pack 2 dla Microsoft SQL Server 2005 .................. 257 Logowanie do serwera bazy danych programu Microsoft SQL Server 2005 ............... 264 Implementacja relacyjnej bazy danych w programie Microsoft SQL Server 2005 ................................................................................. 265 Dodatkowe ródáa informacji ....................................................................................... 270
  • 4. Spis tre ci 7 Rozdziaä 6. Obsäuga bazy danych Microsoft SQL Server z poziomu PHP ............ 271 Aplikacja Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP ............................................................................................................ 272 Standardy sieciowe W3C ....................................................................................... 276 Oddzielenie struktury, prezentacji i zachowania .................................................... 276 Deklaracja typu dokumentu i typu przestrzeni nazw .............................................. 278 Deklaracja typu kodowania znaków ....................................................................... 279 Deklaracja typu arkusza stylów .............................................................................. 279 Konfigurowanie obsáugi bazy danych w PHP .............................................................. 281 Obsáuga bazy danych z poziomu skryptów PHP .......................................................... 286 Podstawowe funkcje PHP obsáuguj ce baz danych Microsoft SQL Server ................ 291 Funkcja mssql_connect() ........................................................................................ 292 Funkcja mssql_select_db() ..................................................................................... 293 Funkcja mssql_query() ........................................................................................... 293 Funkcja mssql_num_rows() ................................................................................... 294 Funkcja mssql_fetch_array() .................................................................................. 295 Funkcja mssql_free_result() ................................................................................... 296 Funkcja mssql_close() ............................................................................................ 296 Pozostaáe funkcje PHP ........................................................................................... 296 Dost p do bazy danych Microsoft SQL Server 2005 z poziomu skryptów PHP .......... 297 Poá czenie z serwerem bazy danych ...................................................................... 298 Poá czenie z relacyjn baz danych ........................................................................ 299 Wprowadzanie nowych danych do tabeli bazy danych ........................................ 300 Wy wietlanie zawarto ci tabeli bazy danych ......................................................... 303 Uaktualnianie zawarto ci tabeli bazy danych ......................................................... 305 Usuwanie danych z tabeli bazy danych .................................................................. 309 Wyszukiwanie danych w tabeli bazy danych ......................................................... 311 Dodatkowe ródáa informacji ....................................................................................... 314 Rozdziaä 7. PEAR ........................................................................................... 315 Czym jest PEAR? ......................................................................................................... 315 Instalowanie PEAR DB w systemie Windows ............................................................. 317 Pobieranie repozytorium PEAR ............................................................................. 317 Instalowanie repozytorium PEAR .......................................................................... 317 Instalowanie moduáu DB ........................................................................................ 321 Obsáuga bazy danych Microsoft SQL Server 2005 z wykorzystaniem moduáu PEAR DB ................................................................................................................... 324 Poá czenie z serwerem bazy ................................................................................... 325 Poá czenie z relacyjn baz .................................................................................... 327 Wprowadzanie nowych danych do tabeli bazy danych .......................................... 328 Wy wietlanie zawarto ci tabeli bazy danych ......................................................... 332 Uaktualnianie zawarto ci tabeli bazy danych ......................................................... 334 Usuwanie danych z tabeli bazy danych .................................................................. 336 Wyszukiwanie danych w tabeli bazy danych ......................................................... 338 Dodatkowe ródáa informacji ....................................................................................... 339
  • 5. 8 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Dodatek A Struktura relacyjnej bazy danych WirtualnySklep ........................... 341 Dodatek B Operatory stosowane w klauzuli WHERE ....................................... 345 Dodatek C Funkcje PHP do kontroli typów zmiennych .................................... 347 Dodatek D Zmienne superglobalne wystöpujñce w PHP .................................. 349 Dodatek E Zawarto è folderu skompresowanego phiisq.zip ............................ 351 Skorowidz .................................................................................... 353
  • 6. Rozdziaä 6. Obsäuga bazy danych Microsoft SQL Server z poziomu PHP Jedn z najwa niejszych zalet j zyka PHP jest mo liwo ü pozyskiwania ró nych infor- macji z relacyjnych baz danych znajduj cych si na serwerach baz danych firmy Micro- soft: SQL Server 2000 lub SQL Server 2005 za pomoc skryptów PHP. St d te j zyk PHP jest logicznym wyborem dla dynamicznego tworzenia zawarto ci stron czy apli- kacji internetowych, za pomoc których mo liwa jest obsáuga relacyjnej bazy danych. Poza wspomnianymi wy ej Systemami Zarz dzania Bazami Danych j zyk PHP standar- dowo udost pnia wiele wbudowanych oraz wyspecjalizowanych funkcji umo liwiaj cych dost p do wi kszo ci popularnych Systemów Zarz dzania Bazami Danych, do których mo na zaliczyü:  Database firmy Oracle,  MySQL firmy MySQL AB,  PostgreSQL firmy PostgreSQL Global Development Group,  DB2 firmy IBM. J zyk PHP umo liwia równie wspóáprac z relacyjnymi bazami danych obsáuguj cymi uniwersalny standard ODBC (ang. Open DataBase Connectivity)1, którym nie b dzie- my si zajmowali w tej ksi ce. Skupimy si tu przede wszystkim na przedstawieniu obsáugi bazy danych programu Microsoft SQL Server 2005 za pomoc wbudowanych w j zyk PHP 5.2.5 funkcji do obsáugi tego typu bazy danych. 1 ODBC to niezale ny od j zyka programowania, systemu operacyjnego i bazy danych interfejs API (ang. Application Programming Interface), który pozwala programom á czyü si z systemami zarz dzania baz danych.
  • 7. 272 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Dost p do przykáadowej relacyjnej bazy danych o nazwie WirtualnySklep zostanie przedstawiony na przykáadzie aplikacji internetowej o nazwie Obsáuga bazy danych Microsoft SQL Server z poziomu skryptów PHP, na któr skáada si kilkana cie skryptów PHP. Aplikacja ta b dzie uruchamiana z poziomu przegl darki internetowej klienta WWW. Z kolei za pomoc serwera internetowego IIS firmy Microsoft i odpo- wiednio skonfigurowanego interpretera skryptów PHP b dzie realizowana obsáuga rela- cyjnej bazy danych. Aplikacja Obsäuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP W poprzednich rozdziaáach zostaáy opisane ró ne skáadniki i zastosowania j zyka struk- turalnego PHP oraz baz danych firmy Microsoft: SQL Server 2000 oraz SQL Server 2005. Z kolei dalsze podrozdziaáy koncentruj si na podstawowych elementach i meto- dach dost pu do relacyjnych baz danych przy wykorzystaniu przegl darki interneto- wej oraz skryptów PHP. Przykáady te z pewno ci nie mówi wszystkiego o dost pie do tego typu baz danych. Nale y je raczej traktowaü jako wst p do projektowania czy programowania na wi ksz skal , tj. tworzenia w peáni profesjonalnych i rozbudowa- nych aplikacji internetowych, za pomoc których mo liwa b dzie obsáuga baz danych dowolnych typów. Podane dalej przykáady daj solidne podstawy do zrozumienia kolejnych czynno ci, jakie maj miejsce podczas obsáugi relacyjnej bazy danych programu Microsoft SQL Server 2005 z poziomu skryptów j zyka PHP. Do tych czynno ci mo na zaliczyü:  poá czenie z serwerem bazy danych o nazwie EA-SQL2005,  wybranie relacyjnej bazy danych o nazwie WirtualnySklep,  wykonanie zapytania SQL (lub kilku zapyta ) na tabeli bazowej o nazwie tKlienci relacyjnej bazy danych,  obejrzenie wyników przygotowanych przez interpreter PHP, przesáanych przez serwer internetowy i wy wietlonych w przegl darce internetowej klienta,  zwolnienie zajmowanych zasobów systemu przez wynik zapytania oraz poá czenie z serwerem bazy danych. Wszystkie przykáady zawarte w tym i w nast pnym rozdziale b d uruchamiane w uproszczonym rodowisku testowym, które zostaáo przedstawione na rysunku 6.1. Za pomoc przegl darki internetowej Internet Explorer 7.0, która jest cz ci systemu klienckiego Microsoft Windows Vista Business zainstalowanego na komputerze o na- zwie EA-K1, b dzie uzyskiwany dost p do relacyjnej bazy danych o nazwie Wirtualny- Sklep, która zostaáa zainstalowana na serwerze czáonkowskim EA-SQL2005. Na tym serwerze zostaáy równie zainstalowane trzy aplikacje: interpreter PHP w wersji 5.2.5,
  • 8. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 273 Rysunek 6.1. Uproszczone rodowisko testowe do obsáugi bazy danych Microsoft SQL Server 2005 z poziomu skryptów PHP usáugi IIS w wersji 6.0 (serwer internetowy) i baza danych programu Microsoft SQL Server 2005 w wersji Enterprise Evaluation Edition. Serwer czáonkowski EA-SQL2005, jak ju wiemy z wcze niejszych rozdziaáów, b dzie pracowaá pod kontrol systemu ope- racyjnego Microsoft Windows Server 2003 w wersji Enterprise Edition z dodatkiem Service Pack 2. Dost p do serwera internetowego firmy Microsoft realizowany b dzie za pomoc lokalnej sieci komputerowej, która pracuje w domenie sieciowej o na- zwie EA.local. Na serwerze internetowym IIS w wersji 6.0 (w jego domy lnym katalogu %System- Drive%Inetpubwwwroot) powinny znajdowaü si skrypty PHP, które skáadaj si na prost aplikacj internetow o nazwie Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP. Wszystkie skrypty s dost pne pod adresem ftp://ftp.helion.pl/przyklady/phiisq.zip w folderze Skrypty PHP. Po ci gni ciu i rozpa- kowaniu tego katalogu nale y je skopiowaü do powy szej lokalizacji na serwerze in- ternetowym. Okno gáówne tej aplikacji zostaáo przedstawione na rysunku 6.2, a jej kod na listingu 6.1. Aplikacja ta skáada si z kilkunastu przykáadowych skryptów PHP zawieraj cych kod XHTML, CSS, PHP i tzw. osadzony SQL, który przeznaczony jest gáównie do manipulowania danymi zawartymi w relacyjnej bazie danych WirtualnySklep pracuj cej pod kontrol programu Microsoft SQL Server 2005. Aplikacja internetowa, która stanowi cz ü tej ksi ki, zostaáa w skrócie przedstawiona szerzej w nast pnym podrozdziale.
  • 9. 274 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Rysunek 6.2. Okno gáówne aplikacji internetowej Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP Listing 6.1. Kod aplikacji internetowej Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP (index.php) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Obs uga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <link href="style.css" type="text/css" rel="stylesheet" /> </head> <body> <div id="wyrownanie_do_srodka"> <h1> <?php require_once('nazwa_programu.php'); ?></h1> <h2>&nbsp;<a href="index.php"><img style="border:none;width:16px;height:16px" src="home.gif" alt="" title="Strona g ówna" /></a></h2> <h3>&nbsp;<img src="kropka.jpg" alt="" title="Strona g ówna" /> Zapraszamy!</h3> <table> <tbody> <tr> <td class="td_kolor_glowna_nagl">&nbsp;Zadania do wykonania</td> <td class="td_kolor_glowna_nagl">&nbsp;Skrypt PHP</td> <td class="td_kolor_glowna_nagl">&nbsp;Skrypt PHP [PEAR DB]</td></tr>
  • 10. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 275 <tr> <td class="td_kolor_glowna">&nbsp;&#187; Testowanie po æczenia z serwerem</td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_serwerem.php"> polacz_z_serwerem.php</a></td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_ ´serwerem_DB.php"> polacz_z_serwerem_DB.php</a></td></tr> <tr> <td class="td_kolor_glowna">&nbsp;&#187; Testowanie po æczenia z bazæ danych</td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_bd.php"> polacz_z_bd.php</a></td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="polacz_z_bd_DB.php"> polacz_z_bd_DB.php</a></td></tr> <tr> <td class="td_kolor_glowna">&nbsp;&#187; Dodawanie nowego rekordu do tabeli</td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="insert.php"> insert.php</a></td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="insert_DB.php"> insert_DB.php</a></td></tr> <tr> <td class="td_kolor_glowna">&nbsp;&#187; Wy wietlanie rekordów ´z tabeli</td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="select.php"> select.php</a></td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="select_DB.php"> select_DB.php</a></td></tr> <tr> <td class="td_kolor_glowna">&nbsp;&#187; Aktualizacja rekordu w tabeli</td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="update.php"> update.php</a></td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="update_DB.php"> update_DB.php</a></td></tr> <tr> <td class="td_kolor_glowna">&nbsp;&#187; Usuwanie rekordu z tabeli</td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="delete.php"> delete.php</a></td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="delete_DB.php"> delete_DB.php</a></td></tr> <tr> <td class="td_kolor_glowna">&nbsp;&#187; Wyszukiwanie rekordów ´w tabeli</td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="szukaj.php"> szukaj.php</a></td> <td class="td_kolor_glowna">&nbsp;&#187; <a href="szukaj_DB.php"> szukaj_DB.php</a></td></tr></tbody></table></div></body></html>
  • 11. 276 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Powy szy kod zostanie do ü szczegóáowo opisany w kolejnych podrozdziaáach — szcze- gólnie te jego elementy, które s zwi zane ze standardami sieciowymi organizacji W3C, czyli mi dzy innymi z technologiami CSS i XHTML. Aplikacja internetowa Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP jest niezwykle prostym projektem zawieraj cym kilkana cie skryptów PHP, za pomoc których realizowana jest obsáuga bazy danych programu Microsoft SQL Server 2005 przy wykorzystaniu funkcji bazodanowych dost pnych w PHP. Skrypty te ilustruj zastosowanie j zyków strukturalnych: PHP i SQL oraz bazy danych progra- mu Microsoft SQL Server 2005. Oczywi cie kod tej aplikacji mo na zoptymalizowaü tak, by w jeszcze mniejszym stopniu obci aá zasoby systemu i lepiej realizowaá swoje funkcje. Standardy sieciowe W3C W przypadku budowania witryn i aplikacji internetowych opartych na nowoczesnych standardach sieciowych nale y pami taü o tym, aby mo liwe byáo ich szybkie prze- budowanie w przyszáo ci, je eli kiedykolwiek zajdzie taka potrzeba. Pozwalaj na to technologie rekomendowane przez mi dzynarodowe konsorcjum o nazwie W3C (ang. World Wide Web Consortium). Generalnie, aplikacja internetowa o nazwie Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP jest prostym projek- tem, którego struktura zostaáa zbudowana przy u yciu tzw. standardów sieciowych2. Co daje projektowanie i budowanie witryn oraz aplikacji internetowych z u yciem stan- dardów sieciowych? Odpowied jest prosta: obni enie kosztów produkcji i utrzyma- nia przy zapewnieniu dost pno ci dla klientów czy u ytkowników, a tak e zgodno ü z przegl darkami internetowymi i dziaáanie na ró nych platformach systemowych (Win- dows, Unix itp.). Generalnie mówi c, standardy sieciowe s pot nym i profesjonalnym narz dziem, dzi ki któremu mo na projektowaü oraz budowaü zaawansowane i profe- sjonalnie wygl daj ce witryny czy aplikacje internetowe. S one kluczem do projekto- wania w niezwykle efektywny, efektowny, a zarazem dost pny dla wielu osób sposób. Oddzielenie struktury, prezentacji i zachowania Powszechnie znana w ród projektantów i programistów witryn czy aplikacji interne- towych jest idea stosowania kodu XHTML3 do opisywania struktury dokumentu in- ternetowego (np. strony internetowej), stylów CSS4 do opisywania jego wygl du (czyli prezentacji), a j zyków PHP czy JavaScript — jego zachowania. Koncepcja oddziele- nia sposobu prezentacji (za pomoc plików z rozszerzeniem .css) od zawarto ci (pliki z rozszerzeniem .html) mo e byü z powodzeniem rozszerzona na skrypty PHP, tj. pliki 2 Standardy sieciowe stanowi kontynuacj istniej cych dot d technik internetowych. S to wi c j zyki strukturalne (takie, jak XHTML czy XML), j zyki warstwy aplikacji (takie, jak CSS) czy j zyki skryptowe (takie, jak ECMAScript). 3 Wi cej informacji na temat XHTML-a mo na znale ü na stronie pod adresem http://www.w3.org/MarkUp/. 4 Wi cej informacji na temat CSS mo na znale ü na stronie pod adresem http://www.w3.org/Style/CSS/.
  • 12. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 277 z rozszerzeniem .php. Przykáadem takiego rozszerzenia jest wáa nie przedstawiona tutaj aplikacja internetowa Obsáuga bazy danych programu Microsoft SQL Server z po- ziomu skryptów PHP. Dlaczego warto stosowaü tego typu rozwi zanie? Otó dlatego, e du o áatwiej utrzymywaü, u ywaü czy te modyfikowaü poszczególne pliki skáadaj - ce si na aplikacj internetow przez dáu szy czas, je eli logika (pliki .php) b dzie oddzielona od zawarto ci (pliki .html), a ta z kolei od sposobu prezentacji (pliki .css). Generalnie mówi c, sprowadza si to do rozdzielenia kodu PHP od kodu XHTML i CSS. Bez tego kod aplikacji internetowej stanie si znacznie trudniejszy w utrzymaniu, u yt- kowaniu czy modyfikowaniu. Szczególnie wa ne jest to np. w przypadku wi kszych projektów. Otó mo e si np. okazaü, e w przypadku wi kszych zmian w kodzie wi- tryny czy aplikacji internetowej niemo liwe b dzie przystosowanie jej do nowej rzeczy- wisto ci. Problemem mo e okazaü si np. du a cz ü kodu XHTML, który zawiera znaczniki HTML decyduj ce o wygl dzie poszczególnych jej elementów. Ich usuni - cie czy zmodyfikowanie mo e zaj ü naprawd bardzo du o czasu oraz stworzyü wiele problemów. J zyk znaczników XHTML mo e zawieraü sformatowane dane tekstowe, obiekty osa- dzone (jak rysunki, filmy, prezentacje itp.). J zyk prezentacyjny CSS z kolei formatuje poszczególne witryny czy aplikacje internetowe oraz kontroluje rozmieszczenie, uáo e- nie czy kolor poszczególnych ich elementów. Za j zyk strukturalny PHP czy JavaScript umo liwia tworzenie zaawansowanych funkcji witryny czy aplikacji internetowej, a tak e efektów dziaáaj cych w ró nych przegl darkach internetowych czy platformach systemowych (Windows, Unix, MacOS itp). Odseparowanie struktury dokumentu od prezentacji i zachowania jest oznakñ pro- fesjonalnego podej cia do projektowania oraz programowania witryn i aplikacji inter- netowych. Mówiñc jeszcze inaczej, jest to metoda, wedäug której bödñ projektowane witryny i aplikacje internetowe w przyszäo ci. Autor niniejszej ksi ki jest zdania, e strony czy aplikacje internetowe powinny byü tworzone w oparciu o kaskadowe arkusze stylów (jak j zyk prezentacji CSS) i standar- dy sieciowe (jak j zyk znaczników XHTML). Dlaczego? Otó powy sze mechanizmy rozwi zuj liczne problemy nie tylko projektantów czy programistów, ale równie zwykáych u ytkowników, którzy korzystaj z witryn i aplikacji internetowych. Technologie takie, jak CSS czy XHTML, pozwalaj :  zmniejszaü nakáad pracy projektantów i programistów oraz skróciü czas projektowania,  projektowaü zaawansowane funkcje interaktywne witryn lub aplikacji internetowych, które dziaáaj w ró nych przegl darkach internetowych i na ró nych platformach systemowych (Windows, Unix, MacOS itp.),  kontrolowaü rozmieszczenie w przegl darkach internetowych poszczególnych elementów czy cz ci witryn lub aplikacji internetowych,  áatwo i szybko modyfikowaü cz ü czy caáo ü witryn lub aplikacji internetowych,  odci aü serwery internetowe i á cza internetowe,
  • 13. 278 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych  oddzielaü styl witryn lub aplikacji internetowych od ich struktury czy zachowania,  skróciü czas wczytywania witryn internetowych,  zapewniü wzrost dost pno ci witryny internetowej,  obsáugiwaü urz dzenia przeno ne, takie jak np. telefony komórkowe czy inne urz dzenia bezprzewodowe. Deklaracja typu dokumentu i typu przestrzeni nazw Aplikacja internetowa Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP jest projektem, którego struktura zostaáa zbudowana przy u yciu jed- nego z trzech aktualnie wykorzystywanych standardów sieciowych — XHTML 1.0 Transtional, który rekomendowany jest przez konsorcjum W3C. Mo na si o tym prze- konaü, edytuj c kod dowolnego ze skryptów PHP, które skáadaj si na t aplikacj . Mianowicie ka dy dokument zaczyna si od deklaracji typu dokumentu internetowe- go wraz z deklaracj typu przestrzeni nazw, które zostaáy pokazane na listingu 6.2. Listing 6.2. Deklaracja typu dokumentu internetowego wraz z deklaracj typu przestrzeni nazw (index.php) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> Dokumenty internetowe, które zostaáy stworzone przy u yciu j zyka znaczników XHTML, rozpoczynaj si od elementów informuj cych dowoln przegl dark inter- netow o tym, w jaki sposób maj byü one interpretowane i sprawdzane. St d te pierwszy z tych elementów (DOCTYPE) jest deklaracj typu dokumentu internetowego. Generalnie j zyk XHTML pozwala projektantom i programistom tworzyü klika ró nych typów dokumentów, ka dy z zestawem innych reguá, które s wymieniane w specyfika- cji XHTML jako definicja typu dokumentu (w skrócie DTD). Wspomniana deklaracja typu dokumentu internetowego (DOCTYPE) informuje przegl dark internetow o tym, jakiej definicji typu dokumentu trzymaá si programista tworz cy dan stron inter- netow . Deklaracja ta jest niezwykle wa na w dokumencie internetowym stworzonym w j zyku znaczników XHTML. Bez poprawnie zdefiniowanej deklaracji DOCTYPE adna przegl darka internetowa nie zweryfikuje kodu znaczników XHTML i stylu CSS. W efekcie pojawi si problemy, gdy przegl darka internetowa nie b dzie potrafiáa obsáu yü, tj. sprawdziü i poprawnie wy wietliü, strony internetowej. Po deklaracji DOCTYPE znajduje si deklaracja typu przestrzeni nazw XHTML. Przestrze ta jest kolekcj typów elementów i nazw atrybutów skojarzonych z definicj typu dokumentu internetowego. Deklaracja przestrzeni nazw pozwala zidentyfikowaü swoj przestrze nazw przez wskazanie jej lokalizacji (http://www.w3.org/1999/xhtml).
  • 14. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 279 Deklaracja typu kodowania znaków Aby dokumenty internetowe utworzone za pomoc j zyka znaczników o nazwie XHTML mogáy byü poprawnie zinterpretowane przez dowoln przegl dark internetow i przej ü pomy lnie wszystkie testy sprawdzaj ce, musz deklarowaü tzw. typ kodowania zna- ków u yty do ich stworzenia. W przypadku aplikacji Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP jest to charset=iso-8859-2, zgodnie z tym, co zostaáo przedstawione na listingu 6.3. Listing 6.3. Deklaracja typu kodowania znaków w dokumencie internetowym (index.php) <head> <title>Obs uga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <link href="style.css" type="text/css" rel="stylesheet" /> </head> Jak widaü na powy szym listingu, typ kodowania znaków, który zapewnia popraw- ne wy wietlanie znaków narodowych, zostaá zadeklarowany za pomoc elementu http-equiv="content-type" umieszczonego w elemencie <meta… /> cz ci nagáówko- wej dokumentu internetowego, czyli pomi dzy znacznikami <head>…</head>. Zaznaczo- ny na listingu 6.3 czcionk pogrubion wiersz pokazuje zapis dla kodowania iso-8859-2. Takie oznaczenie nosi polska strona kodowa, tj. dla polskich czcionek. W przypadku tworzenia miödzynarodowej witryny czy aplikacji internetowej, która bödzie zawieraè znaki niewystöpujñce w kodzie ASCI, nale y u yè kodowania utf-8 zamiast iso-8859-2. Standard ISO 8859 stworzony zostaá w poáowie lat 80. XX w. przez Europejskie Sto- warzyszenie Producentów Komputerów. Jest on seri standaryzowanych wieloj zycz- nych zestawów znaków graficznych, które s kodowane na jednym bajcie (1 B), czyli 8 bitach (1 B = 8 bitów). Jednym z tych zestawów jest wspomniany ju wy ej standard iso-8859-2. Deklaracja typu arkusza stylów Kaskadowe arkusze stylów mog wyst powaü jako zewn trzne, byü osadzone w ko- dzie XHTML danej witryny internetowej lub wyst powaü w tzw. miejscu (ang. inline). W niniejszej ksi ce zostanie omówione jedynie pierwsze z tych wyst pie arkuszy stylów. Dlaczego? Otó dlatego, e przy zastosowaniu zewn trznych arkuszy stylów otrzymujemy szereg wymiernych korzy ci, które wynikaj choüby ze znacznego zmniej- szenia obci enia serwera internetowego czy á czy internetowych. Poza tym s one obsáugiwane przez wi kszo ü popularnych przegl darek internetowych (w tym rów- nie Internet Explorer, która jest skáadnikiem systemów operacyjnych z rodziny Micro- soft Windows).
  • 15. 280 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Zewn trzny arkusz stylów, czyli plik z rozszerzeniem .css (np. style.css, który jest do- st pny pod adresem ftp://ftp.helion.pl/przyklady/phiisq.zip w folderze Skrypty PHP, a jego przykáadowa zawarto ü zostaáa pokazana na rysunku 6.3), jest dokumentem tekstowym zawieraj cym kod CSS w postaci okre lonych reguá CSS. Mo e on byü wykorzystany z powodzeniem na stronie internetowej zgodnej ze standardami sieciowymi. Inaczej mówi c, strona internetowa XHTML mo e u ywaü pliku z rozszerzeniem .css (pliku arkusza stylów), odwoáuj c si do niego poprzez element o nazwie link, który zostaá umieszczony w nagáówku dokumentu internetowego, tj. w sekcji <head>…</head>. Rysunek 6.3. Przykáadowa zawarto ü pliku style.css Przykáadowy element link mo e wygl daü podobnie to tego z listingu 6.4. Listing 6.4. Deklaracja arkusza stylów w dokumencie internetowym (index.php) <head> <title>Obs uga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <link href="style.css" type="text/css" rel="stylesheet" /> </head> Reguäa w kodzie CSS jest to kompletne okre lenie stylu skäadajñcego siö z selek- tora oraz bloku deklaracji umieszczonych pomiödzy nawiasami klamrowymi, np. w postaci: p {font-family: Verdana, sans-serif;}. Takie podej cie powoduje, e plik ten jest podá czany w trakcie pierwszego urucho- mienia skryptu PHP o nazwie index.php, w którym zadeklarowany zostaá arkusz sty- lów CSS. Zmniejsza to nie tylko obci enie samego serwera internetowego, ale i á cz, za pomoc których plik ten jest wywoáywany.
  • 16. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 281 Konfigurowanie obsäugi bazy danych w PHP Gdy ju poznali my podstawowe elementy j zyków SQL, PHP czy XHTML, a tak e utworzyli my relacyjn baz danych o nazwie WirtualnySklep wraz z poszczególnymi jej tabelami bazowymi w programie Microsoft SQL Server 2005, mo emy przyst piü do skonfigurowania obsáugi tej e bazy z poziomu skryptów PHP. W niniejszym podrozdziale skupimy si gáównie na klientach wirtualnego sklepu, tj. na obsáudze tabeli bazowej o nazwie tKlienci, która znajduje si w relacyjnej bazie danych o nazwie WirtualnySklep. To wáa nie na jej przykáadzie zostanie zaprezentowany do- st p do serwera bazy danych Microsoft SQL Server 2005 z poziomu skryptów PHP (za pomoc wbudowanych funkcji obsáuguj cych tego typu baz danych), do relacyj- nej bazy danych WirtualnySklep oraz jej tabeli bazowej tKlienci, a tak e wszelkiego rodzaju operacje zwi zane z dodawaniem, odczytywaniem, modyfikacj , usuwaniem czy wyszukiwaniem danych. Aby w ogóle mo liwa byáa jakakolwiek komunikacja pomi dzy baz danych progra- mu Microsoft SQL Server 2005 a interpreterem PHP, nale y wykonaü pewne wst pne kroki konfiguracyjne, które zostan opisane w tym podrozdziale. W przypadku j zyka PHP w wersji 5.2.5 ka demu serwerowi baz danych odpowiada dynamiczna bibliote- ka, czyli zazwyczaj jaki plik z rozszerzeniem .dll, który znajduje si w katalogu in- stalacyjnym PHP z rozszerzeniami, tj. C:PHP5ext. Plik ten zawiera zbiór okre lo- nych z góry funkcji, które s wykorzystywane w komunikacji z okre lon relacyjn baz danych. Przykáadowa zawarto ü katalogu rozszerze j zyka PHP w wersji 5.2.5 zostaáa przed- stawiona na rysunku 6.4. Warto tu dodaü, e w przypadku bazy danych programu Micro- soft SQL Server 2005 bardzo wa ne s dwa pliki: php_mssql.dll (znajduj cy si w loka- lizacji C:PHP5ext) oraz ntwdblib.dll (znajduj cy si w lokalizacji C:PHP5), który do dziaáania wymaga wspomnianej biblioteki php_mssql.dll. W przypadku innych baz danych, np. Oracle Database, niezwykle wa ny jest plik php_oci8.dll, dla MySQL AB MySQL — php_mysql.dll, z kolei dla bazy danych PostgreSQL Global Development Group PostgreSQL — php_pgsql.dll. Po czystej instalacji bazy danych programu Microsoft SQL Server 2005 oraz dodatku Service Pack 2 dla tego programu, która zostaáa przedstawiona szczegóáowo w po- przednim rozdziale, nale y uruchomiü na komputerze klienta EA-K1 przegl dark inter- netow i wpisaü jako adres URL http://ea-sql2005. Po wybraniu klawisza Enter zostanie wy wietlona testowa aplikacja internetowa Obsáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP, której okno gáówne zostaáo przedstawione wcze niej, tj. na rysunku 6.2. Po klikni ciu odno nika polacz_z_serwerem.php, za po- moc którego mo na przetestowaü poá czenie z serwerem bazy danych o nazwie EA- SQL2005 z poziomu skryptu PHP, pojawi si „pusta strona internetowa” — zgodnie z tym, co zostaáo pokazane na rysunku 6.5. Termin „pusta strona internetowa” nale y tutaj rozumieü jako „strona bez przetworzonego kodu PHP”, tj. kodu znajduj cego si pomi dzy znacznikami j zyka PHP <?php //… ?>. Czyli inaczej mówi c, bez kodu
  • 17. 282 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Rysunek 6.4. Zawarto ü katalogu C:PHP5ext z plikami do obsáugi ró nych typów relacyjnych baz danych pokazanego na listingu 6.5, który pochodzi z pliku polacz_z_serwerem.php. Plik ten, jak ju wiemy, znajduje si w katalogu gáównym serwera internetowego EA-SQL2005, tj. C:Inetpubwwwroot. Wy wietlany jest jedynie statyczny kod strony internetowej, tj. kod HTML. Dlaczego tak si dzieje? Otó dzieje si tak z kilku przedstawionych poni ej powodów.  Brak w katalogu %SystemRoot%system32 serwera czáonkowskiego EA-SQL2005 (na którym dziaáa interpreter PHP 5.2.5 i usáugi IIS 6.0) bardzo wa nego pliku o nazwie ntwdblib.dll, który dostarczany jest wraz z interpreterem PHP 5.2.5, czyli z repozytorium o nazwie php-5.2.5-Win32.zip. W przypadku programu Microsoft SQL Server 2000 plik ten jest domy lnie instalowany w powy szym katalogu.  Wyá czone jest rozszerzenie php_mssql.dll w sekcji Windows Extensions pliku konfiguracyjnego %SystemRoot%php.ini, które po domy lnej instalacji interpretera PHP 5.2.5 nie jest aktywne (znak rednika w linii ;extension= ´php_mssql.dll, który oznacza komentarz). Jak pami tamy, polecenia ze znakiem komentarza nie s wczytywane do pami ci operacyjnej serwera czáonkowskiego podczas uruchamiania interpretera PHP.  Nie zostaáa poprawnie zdefiniowana cie ka w dyrektywie extension_dir = "C:PHP5ext" pliku konfiguracyjnego %SystemRoot%php.ini, która po domy lnej instalacji interpretera PHP 5.2.5 ma postaü extension_dir = "./". Powoduje to, e nie mo e byü wczytany plik php_mssql.dll, który znajduje si w katalogu rozszerze PHP.  Dodatkowo — w przypadku gdy PHP wykorzystuje rozszerzenie CGI (plik wykonywalny php-cgi.exe zamiast php5isapi.dll) — nie zostaáa wá czona (odpowiednio skonfigurowana) w pliku konfiguracyjnym %SystemRoot%php.ini linijka tekstu ;cgi.force_redirect = 1. Nale y j wá czyü, usuwaj c znak rednika, który, jak wiemy, jest komentarzem, i ustawiü na warto ü 0. Poprawna linijka kodu powinna wygl daü tak: cgi.force_redirect = 0.
  • 18. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 283 Rysunek 6.5. Negatywny wynik testowania poá czenia z serwerem bazy danych programu Microsoft SQL Server 2005 z poziomu skryptu polacz_z_serwerem.php Listing 6.5. Kod PHP realizuj cy poá czenie z serwerem bazy danych programu Microsoft SQL Server 2005 (polacz_z_serwerem.php) <?php require_once('funkcje.php'); polacz_z_serwerem_bd(); ?> Jak widaü na powy szym listingu, wykorzystana zostaáa instrukcja require_once() pozwalaj ca na zaáadowanie pliku funkcje.php do skryptu PHP i wywoáana funkcja polacz_z_serwerem_bd(), która znajduje si w tym pliku. Funkcja ta zawiera para- metry potrzebne do zestawienia poá czenia z serwerem bazy danych Microsoft SQL Server 2005, który dziaáa na serwerze czáonkowskim o nazwie EA-SQL2005, oraz obsáu- gi bá dów, jakie mog wyst piü podczas zestawiania tego poá czenia. Biblioteka dynamiczna ntwdblib.dll, która do dziaáania wymaga innej biblioteki — php_mssql.dll, znajduje si w katalogu instalacji interpretera PHP, czyli C:PHP5 (po rozpakowaniu repozytorium php-5.2.5-Win32.zip), oraz jest wykorzystywana pod- czas dost pu do relacyjnej bazy danych programu Microsoft SQL Server 2005 z po- ziomu skryptów PHP. Plik ten wykorzystywany jest w komunikacji z serwerem bazy danych Microsoft SQL Server 2005. Ze wzglödu na szybko è wykonywania skryptów PHP najlepiej jest, kiedy zarówno PHP, jak i Microsoft SQL Server 2005 dziaäajñ na tym samym komputerze.
  • 19. 284 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Aby istniaáa mo liwo ü odczytywania plików z rozszerzeniami .php (skryptów PHP) i wy wietlania wyników ich dziaáania z poziomu przegl darki internetowej klienta EA-K1, nale y wykonaü poni sze kroki na serwerze czáonkowskim EA-SQL2005, na którym zostaáy zainstalowane:  interpreter skryptów PHP w wersji 5.2.5,  serwer internetowy IIS w wersji 6.0,  serwer bazy danych Microsoft SQL Server 2005. 1. Skopiowaü plik ntwdblib.dll z katalogu C:PHP5 do katalogu %SystemRoot% ´system32. Mo na to wykonaü bardzo szybko np. za pomoc komendy wydanej z okna Wiersz polecenia: copy C:PHP5ntwdblib.dll %SystemRoot% ´system32. 2. Zatrzymaü i ponownie uruchomiü usáugi IIS 6.0 na serwerze czáonkowskim EA-SQL2005 — zgodnie z tym, co przedstawia rysunek 6.6 — czyli z poziomu konsoli Mened er internetowych usáug informacyjnych (IIS), któr mo na uruchomiü za pomoc komendy inetmgr (wydanej z poziomu okna dialogowego Uruchamianie) lub start inetmgr (wydanej z poziomu okna Wiersz polecenia). Rysunek 6.6. Ponowne uruchamianie usáugi IIS na serwerze czáonkowskim EA-SQL2005 3. W oknie dialogowym o nazwie Zatrzymywanie/uruchamianie/uruchamianie ponowne…, które zostaáo przedstawione na rysunku 6.7, nale y sprawdziü, czy wybrana jest czynno ü Uruchom ponownie Usáugi internetowe na EA-SQL2005, i klikn ü przycisk OK.
  • 20. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 285 Rysunek 6.7. Okno dialogowe o nazwie Zatrzymywanie/ uruchamianie/ uruchamianie ponowne… Zatrzymanie i ponowne uruchomienie usäug IIS 6.0 na serwerze czäonkowskim EA-SQL2005 mo na szybko wykonaè za pomocñ nastöpujñcej komendy wiersza poleceþ: iisreset EA-SQL2005. 4. Sprawdziü w skryptach PHP, czy zostaáy zdefiniowane poprawnie takie zmienne, jak: nazwa serwera bazy danych Microsoft SQL Server 2005 (EA- SQL2005), nazwa u ytkownika (sa) i hasáo (27aB.#cd75) — zgodnie z tym, co przedstawia listing 6.6. Dodatkowo nale y te sprawdziü zmienn $bazaDanych, która powinna mieü przypisan nazw WirtualnySklep, czyli $bazaDanych = 'WirtualnySklep'. Zmienna ta nie jest potrzebna w przypadku nawi zywania poá czenia z samym serwerem bazy danych Microsoft SQL Server 2005. Jest za to wr cz niezb dna w pozostaáych skryptach PHP, które np. operuj na danych zgromadzonych w tabeli bazowej tKlienci. Listing 6.6. Zmienne wymagane do poá czenia z serwerem bazy danych Microsoft SQL Server 2005 i baz danych WirtualnySklep <?php $nazwaSerwera = 'EA-SQL2005'; $bazaDanych = 'WirtualnySklep'; $nazwaUzytkownika = 'sa'; $hasloUzytkownika = '27aB.#cd75'; /* blok kodu skryptu PHP */ ?> Po wykonaniu powy szych kroków próba poá czenia za pomoc przegl darki inter- netowej klienta EA-K1 z serwerem bazy danych Microsoft SQL Server 2005 z po- ziomu skryptu PHP (za pomoc adresu http://ea-sql2005/polacz_z_serwerem.php) powinna si powie ü, co przedstawia rysunek 6.8, czyli komunikat o tre ci [+] Poá - czono si z serwerem bazy danych. Je eli tak si stanie, to mo emy zaáo yü, e odt d mo liwa jest komunikacja nie tylko pomi dzy relacyjna baz danych programu Micro- soft SQL Server 2005 a interpreterem PHP 5.2.5, ale tak e pomi dzy serwerem IIS 6.0
  • 21. 286 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Rysunek 6.8. Pozytywny wynik testowania poá czenia z serwerem bazy danych programu Microsoft SQL Server 2005 z poziomu skryptu polacz_z_serwerem.php i przegl dark internetow klienta EA-K1. Inaczej mówi c, mo liwa jest obsáuga bazy danych programu Microsoft SQL Server 2005 z poziomu aplikacji internetowej Ob- sáuga bazy danych programu Microsoft SQL Server z poziomu skryptów PHP, która znajduje si na serwerze internetowym IIS 6.0 (w katalogu gáównym tego serwera). W razie problemów z podá czeniem si do serwera bazy danych Microsoft SQL Server 2005 z poziomu skryptu PHP o nazwie polacz_z_serwerem.php nale y sprawdziü usta- wienia w pliku konfiguracyjnym w katalogu %SystemRoot%php.ini. Najwa niejsze ustawienia zostaáy zaprezentowane w podrozdziale „Instalowanie i konfigurowanie PHP w systemie Windows” niniejszej ksi ki. Obsäuga bazy danych z poziomu skryptów PHP Obsáug relacyjnej bazy danych o nazwie WirtualnySklep znajduj cej si na serwerze bazy danych Microsoft SQL Server 2005 o nazwie EA-SQL2005 (z poziomu skryptu PHP, np. select.php, który jest dost pny pod adresem ftp://ftp.helion.pl/przyklady/ ´phiisq.zip w folderze Skrypty PHP) mo na podzieliü na pi ü poni ej przedstawio- nych kroków. Krok 1. Nawi zanie poá czenia z serwerem bazy danych programu Microsoft SQL Server 2005 o nazwie EA-SQL2005.
  • 22. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 287 Przykáadowy kod PHP zostaá przedstawiony na listingu 6.7. Istotne elementy kodu PHP zostaáy zaznaczone tekstem pogrubionym. Listing 6.7. Nawi zanie poá czenia z serwerem bazy danych programu Microsoft SQL Server 2005 o nazwie EA-SQL2005 <?php $nazwaSerwera = 'EA-SQL2005'; $bazaDanych = 'WirtualnySklep'; $nazwaUzytkownika = 'sa'; $hasloUzytkownika = '27aB.#cd75'; $polacz_z_serwerem = @mssql_connect($nazwaSerwera, $nazwaUzytkownika, $hasloUzytkownika) or die("[-] Nie mo na po æczyè siú z serwerem bazy danych!<br /><br />"); /* kod skryptu PHP */ ?> Krok 2. Nawi zanie poá czenia z relacyjn baz danych o nazwie WirtualnySklep, która znajduje si na serwerze bazy danych programu Microsoft SQL Server 2005 o nazwie EA-SQL2005. Przykáadowy kod PHP zostaá przedstawiony na listingu 6.8. Jego istotne elementy zo- staáy zaznaczone tekstem pogrubionym. Listing 6.8. Nawi zanie poá czenia z relacyjn baz danych o nazwie WirtualnySklep <?php $nazwaSerwera = 'EA-SQL2005'; $bazaDanych = 'WirtualnySklep'; $nazwaUzytkownika = 'sa'; $hasloUzytkownika = '27aB.#cd75'; $polacz_z_serwerem = @mssql_connect($nazwaSerwera, $nazwaUzytkownika, $hasloUzytkownika) or die("[-] Nie mo na po æczyè siú z serwerem bazy danych!<br /><br />"); $polacz_z_baza = @mssql_select_db($bazaDanych, $polacz_z_serwerem) or die("[-] Nie mo na po æczyè siú z bazæ danych!<br /><br />"); /* kod skryptu PHP */ ?>
  • 23. 288 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych Krok 3. Wysáanie zapytania SQL do tabeli bazowej tKlienci relacyjnej bazy danych WirtualnySklep programu Microsoft SQL Server 2005 o nazwie EA-SQL2005. Przykáadowy kod zostaá przedstawiony na listingu 6.9. Jego istotne elementy zostaáy zaznaczone tekstem pogrubionym. Listing 6.9. Wysáanie zapytania SQL do tabeli bazowej tKlienci <?php /* kod skryptu PHP */ $zapytanie = "SELECT * FROM tKlienci"; /* kod skryptu PHP */ ?> Krok 4. Pobranie i wykorzystanie otrzymanych wyników (np. wy wietlenie zawarto- ci tabeli bazowej tKlienci relacyjnej bazy danych WirtualnySklep) w postaci statycznej tabeli HTML. Przykáadowy kod zostaá pokazany na listingu 6.10. Jego istotne elementy zostaáy za- znaczone tekstem pogrubionym. Listing 6.10. Pobranie i wykorzystanie otrzymanych wyników w postaci statycznej tabeli HTML <?php /* kod skryptu PHP */ $wynik = @mssql_query($zapytanie); if (!$wynik) { echo "[-] Wykonanie zapytania nie powiod o siú!<br /><br />"; exit; } else { echo "<table cellspacing='3' cellpadding='5'>"; echo "<tr bgcolor='#dddddd' align='left'>"; echo "<th>Nr ID</th> <th>Nazwisko</th> <th>Imiú</th> <th>Ulica</th> <th>Kod poczt.</th> <th>Miejscowo è</th> <th>Województwo</th> <th>Telefon</th> <th>Email</th>";
  • 24. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 289 echo "</tr>"; while ($wiersz = @mssql_fetch_array($wynik)) { echo "<tr align='left'>"; echo "<td>".$wiersz['KlientID']."</td>"; echo "<td>".$wiersz['Nazwisko']."</td>"; echo "<td>".$wiersz["Imie"]."</td>"; echo "<td>".$wiersz["Ulica"]."</td>"; echo "<td>".$wiersz["KodPocztowy"]."</td>"; echo "<td>".$wiersz["Miejscowosc"]."</td>"; echo "<td>".$wiersz["Wojewodztwo"]."</td>"; echo "<td>".$wiersz["Telefon"]."</td>"; echo "<td>".$wiersz["Email"]."</td>"; echo "</tr>"; } echo "</table>"; } /* kod skryptu PHP */ ?> Krok 5. Zwolnienie zaj tych zasobów serwera bazy danych Microsoft SQL Server 2005 o nazwie EA-SQL2005 (gáównie jego pami ci operacyjnej RAM) przez zmienne $wynik i $polacz_z_serwerem oraz zamkni cie poá czenia z tym serwerem bazy danych. Przykáadowy kod PHP zostaá przedstawiony na listingu 6.11. Jego istotne elementy zo- staáy zaznaczone tekstem pogrubionym. Listing 6.11. Zwolnienie zaj tych zasobów serwera bazy danych Microsoft SQL Server 2005 o nazwie EA-SQL2005 i zamkni cie poá czenia z tym serwerem <?php /* blok kodu skryptu PHP */ @mssql_free_result($wynik); @mssql_close($polacz_z_serwerem); /* blok kodu skryptu PHP */ ?> Reasumuj c, spróbujmy okre liü, jakie czynno ci wykonuje skrypt PHP o nazwie select.php. W skrócie mo na przedstawiü je w nast puj cych krokach. Krok 1. Na samym pocz tku zestawiane jest poá czenie z serwerem bazy danych Microsoft SQL Server 2005 o nazwie EA-SQL2005, na którym znajduje si relacyjna baza danych o nazwie WirtualnySklep — przy u yciu funkcji wewn trznej PHP mssql_connect(), której podstawowymi parametrami s :
  • 25. 290 PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych  nazwa serwera bazy danych Microsoft SQL Server 2005 (EA-SQL2005),  nazwa u ytkownika (sa), którego konto ma przyznane odpowiednie uprawnienia do relacyjnej bazy danych WirtualnySklep,  hasáo u ytkownika (27aB.#cd75). Krok 2. Kiedy poá czenie z serwerem bazy danych Microsoft SQL Server 2005 o na- zwie EA-SQL2005 zostanie pomy lnie nawi zane, wynikiem dziaáania funkcji o nazwie mssql_connect() b dzie identyfikator poá czenia (np. Resource id #1), który jest prze- chowywany w zmiennej o nazwie $polacz_z_serwerem. W przypadku jakichkolwiek problemów z poá czeniem z serwerem bazy danych zostanie wy wietlony (przy wyko- rzystaniu funkcji o nazwie die()) komunikat bá du o nast puj cej tre ci: [-] Nie mo na poá czyü si z serwerem bazy danych!. Krok 3. Po poprawnym zestawieniu poá czenia z serwerem bazy danych Microsoft SQL Server 2005 o nazwie EA-SQL2005 kolejnym krokiem jest wybranie (za pomoc funkcji o nazwie mssql_select_db()) relacyjnej bazy danych WirtualnySklep, która znaj- duje si na tym serwerze. Krok 4. Je eli nie wyst pi aden krytyczny bá d (identyfikator poá czenia wynosi 1), kolejnym krokiem b dzie utworzenie zmiennej $zapytanie, która b dzie przechowy- waáa instrukcj SQL, tj. zdefiniowane zapytanie j zyka SQL. Krok 5. W nast pnym kroku tworzona jest zmienna $wynik, która przechowuje iden- tyfikator wyniku zapytania przeprowadzonego przez funkcj o nazwie mssql_query(). Kiedy zapytanie zostanie poprawnie wykonane (nie pojawi si komunikat o tre ci [-] Wykonanie zapytania nie powiodáo si !), wtedy wydzielane s wiersze wyniku za po- moc funkcji PHP o nazwie mssql_fetch_array(), które s przechowywane w zmiennej $wynik. Wcze niej jednak jest tworzona statyczna tabela HTML. P tla while tworzy tablic o nazwie $wiersz dla ka dego rekordu wynikowego. Wiersze s podstawiane do tablicy dopóty, dopóki warto ci caáego wyra enia nie b dzie warto ü False. Ma to miejsce wówczas, gdy nie ma ju wi cej wierszy do przetworzenia. Wtedy p tla while ko czy swoje dziaáanie. Krok 6. Na ko cu skryptu PHP nast puje zwolnienie wykorzystywanych do przepro- wadzenia zapytania SQL zasobów systemowych (gáównie pami ci operacyjnej RAM serwera czáonkowskiego o nazwie EA-SQL2005) — przy wykorzystaniu funkcji wbu- dowanej PHP o nazwie mssql_free_result(), oraz zamkni cie poá czenia z serwerem bazy danych Microsoft SQL Server 2005. Odpowiedzialna jest za to funkcja wewn trz- na j zyka PHP o nazwie mssql_close(). U ycie funkcji wewnötrznej PHP o nazwie mssql_close() (na koþcu skryptu PHP) nie jest wymagane, gdy poäñczenia nietrwaäe (ang. nonpersistent) sñ automatycznie zamykane po zakoþczeniu dziaäania tego skryptu. Niemniej jednak dobrym nawykiem programistycznym jest, aby zwalniaè zajmowane przez zmienne zasoby oraz zamykaè otwarte poäñczenia z relacyjnñ bazñ danych.
  • 26. Rozdziaä 6. i Obsäuga bazy danych Microsoft SQL Server z poziomu PHP 291 Wynik skryptu PHP select.php, który zostaá wywoáany z poziomu przegl darki inter- netowej komputera klienta EA-K1 pracuj cego pod kontrol systemu operacyjnego Microsoft Windows Vista Business, zostaá pokazany na rysunku 6.9. Jak widaü na tym rysunku, w wyniku dania o tre ci http://ea-sql2005/select.php zwróconych zo- staáo pi ü przykáadowych rekordów z relacyjnej bazy danych WirtualnySklep, która znajduje si na serwerze czáonkowskim o nazwie EA-SQL2005. Rysunek 6.9. Wynik wykonania skryptu PHP o nazwie select.php Podstawowe funkcje PHP obsäugujñce bazö danych Microsoft SQL Server Jak ju wspomniano na pocz tku niniejszego rozdziaáu, interpreter j zyka skryptowego PHP w wersji 5.2.5 posiada wbudowan obsáug ró nych typów baz danych (w tym bazy danych programu Microsoft SQL Server 2005) za pomoc wewn trznych funkcji. Oznacza to tyle, e wiele popularnych typów serwerów baz danych jest obsáugiwanych z poziomu skryptów PHP. W niniejszej ksi ce zostan opisane wybrane funkcje j zyka PHP, za pomoc których mo liwy jest dost p z poziomu kodu PHP do bazy danych programu Microsoft SQL Server 2005.