Projektowanie stron WWW od podszewki

Artykuły na każdy temat

[PHP/MySQL] Łączenie się z serwerem i bazą danych MySQL?

Dodano 08.09.2009r. o 23:49
W tym krótkim artykule przedstawię Wam w jaki sposób łączymy się i wybieramy bazę oraz wskaże różnice między funkcja mysql_connect() i mysql_pconnect().

Przy użyciu funkcji mysql_pconnect() zostaję nawiązane stałe połączenie, które nie zostanie zamknięte po wykonaniu skryptu. Przed próba stworzenia takiego połączenia PHP sprawdza czy nie istnieję identyczne połączenie czyli takie gdzie host, nazwa użytkownika i hasło są takie same. W sytuacji gdy PHP jest uruchomiony jako "wrapper" CGI wtedy zachodzi zjawisko, w którym po każdorazowym wykonaniu skryptu wszystkie zasoby są zwalniane. Tyczy się to także połączeń stałych. Musimy wiedzieć, że czas nawiązywania połączenia z bazą danych jest znaczny lecz zablokowanie zasobów serwera jest groźniejsze. Wyobraź sobie sytuacje, w której przekroczymy jednoczesny limit połączeń co doprowadzi do paraliżu aplikacji. W przypadku źle napisanych aplikacji doprowadzenie do takiego stanu wcale nie jest trudne! Wtedy kolejne próby połączeń spełzną na niczym.
Kod:
<?php
$cfg['mysql']['host'] = '127.0.0.1';
$cfg['mysql']['login'] = 'root';
$cfg['mysql']['password'] = 'pass';
$cfg['mysql']['database'] = 'name';

// Funkcja do prostej obsługi błędów
function show_error($id)
{
 /*
  * @Name_function: show_error
  * @Description: function display selected error
  * @Argument: $id (int)
  */

  switch($id)
  {
   case 1:
    echo 'couldn\'t connect to database';
   break;

   case 2:
    echo 'cannot select database';
   break;

   default:
    echo 'unknown error';
   break;
  }
}

// Łączenie z baza danych
$mysql_handle mysql_connect($cfg['mysql']['host'], $cfg['mysql']['login'], $cfg['mysql']['password']) or die (show_error(1));
// Wybieranie bazy danych
mysql_select_db($cfg['mysql']['database'], $mysql_handle) or die(show_error(2)); // Możemy użyć uchwytu lecz nie musimy gdy nawiązujemy tylko jedno połączenie
// Zamykanie połączenia
mysql_close($mysql_handle);
?>
Więcej informacji na:
http://php.net/manual/pl/function.mysql-close.php
http://php.net/manual/pl/function.mysql-connect.php
http://php.net/manual/pl/function.mysql-error.php
http://php.net/manual/pl/function.mysql-pconnect.php
http://php.net/manual/pl/function.mysql-select-db.php

Komentarze

Publikowane komentarze są prywatnymi opiniami użytkowników serwisu. Serwis nie ponosi odpowiedzialności za treść opinii. W trosce o zachowanie poziomu dyskusji wszystkie komentarze podlegają akceptacji przed ich publikacją dlatego proszę cierpliwie czekać aż komentarz zostanie opublikowany.

Suchy

Dodano 07.07.2010r. o 00:22
suchar

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)