362 PHP i MySQL dla każdego
We wszystkich dalszych przykładach przyjęto założenie, że na serwerze MySQL (uruchomionym na komputerze lokalnym localhost) zostało założone konto o nazwie pte i haśle test, które pozwala na wykonywanie wszystkich operacji wymaganych przez dany skrypt.
Połączenie otwarte za pomocą funkcji mysql_connect zostanie zamknięte automatycznie, kiedy skrypt zakończy działanie lub też kiedy zostanie wywołana funkcja mysql_ close. Dobrym obyczajem programistycznym jest jawne zamykanie połączenia za pomocą tej funkcji. Schematyczne wywołanie mysql_close ma postać: ąysql_close([idnetyfikator])
gdzie identyfikator to identyfikator połączenia, które ma zostać zamknięte, zwrócony wcześniej przez funkcję mysq1_connect. Jeżeli parametr identyfikator nie zostanie podany, zostanie zamknięte ostatnio otwarte połączenie. Funkcja mysql_close zwraca wartość true, jeżeli operacja przez nią wykonywana zakończyła się sukcesem, lub wartość false — w przeciwnym przypadku.
Po nawiązaniu połączenia z serwerem należy dokonać wyboru bazy. Służy do tego celu funkcja rqysql_select_db, która jest odpowiednikiem wykorzystywanego w poprzednich rozdziałach, podczas pracy z klientem mysql, polecenia use database. Wywołanie mysql_select_db ma schematyczną postać:
mysqł_sel ect_db("nazwaJazy" [. identyfikator']) gdzie nazv/a_bazy to nazwa bazy, do której będą wysyłane zapytania, a identyfikator to identyfikator połączenia zwrócony przez funkcję mysql_connect. Jeśli identyfikator połączenia nie zostanie podany, zostanie wykorzystane ostatnio otwarte połączenie. Spróbujmy wykonać prosty skrypt, który przetestuje, czy komunikacja między PHP a MySQL działa prawidłowo. Przykładowy kod jest widoczny na listingu 13.1.
Listing 13.1. Skrypt testujący połączenie z serwerem baz danych
<?php
if (!$db_lnk = raysql_connect("localhost". "php", ''test“)){ echo{'Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>'): exit:
else{
echoCPołączenie z bazą danych zostało nawiązane...<BR>'):
if(!mysql_select_db('test'. $db_lnk)){ echo('Wystąpił błąd podczas wyboru bazy danych: test<BR>'):