PHP MySQL Jak połączyć się z serwerem bazy danych MySQL?

Połączenie z bazą danych MySQL możemy zrealizować na kilka sposobów – jak większość rzeczy w PHP.
Może to być:
- zwykłe połączenie deklarowane w kodzie PHP,
- bardziej rozbudowana funkcja której zadaniem będzie połączenie z bazą danych,
- zdefiniowane w osobnym pliku który dołączamy do wykonywanego kodu (funkcja include, require).
- itd.

Poniżej przedstawię kilka sposobów połączeń z bazą MySQL.

UWAGA:
Poniższe przykłady przedstawiają sposób połączenia się z jedną bazą danych MySQL (jest to domyślny sposób w php).
Jeżeli chcecie utworzyć połączenie z dwoma, albo kilkoma bazami danych MySQL jednocześnie, zapraszam do odrębnego artykułu (podłączenie się do kilku baz MySQL jednocześnie).

PRZYKŁAD 1:
Prosty kod PHP tworzący bezpośrednio połączenie z bazą danych MySQL

<?php
// 1. Na początek tworzymy połączenie z hostem bazy danych MySQL.
$host = ‘locahost’;
$user = ‘user’;
$pass = ‘pass’;
$con = @mysql_connect($host, $user, $pass);
if(!$con) {
        echo “ERROR MySQL: Connect to Server\n”;
        exit;
}
// 2. Podłączamy się do określonej bazy danych.
$db = ‘baza_danych_MySQL’;
@mysql_select_db($db, $con);
// 3. Na koniec zamykamy połączenie z bazą danych MySQL.
mysql_close($con);
?>

WYJAŚNIENIA:
1. Użycie znaku @ (małpy) przed funkcjami powoduje to, iż nie zostanie wyświetlony błąd w przypadku niepowodzenia wykonania funkcji.
W tym przypadku, funkcja mysql_connect, mogłaby wyświetlić błąd gdyby np. host z bazą danych był nieosiągalny, a funkcja mysql_select_db() wyświetliłaby błąd gdyby nie mogła nawiązać połączenia z określoną bazą danych.
Użycie @mysql_connect() zamiast mysql_connect(), zaniecha wyświetlenie niepotrzebnych komunikatów.

2. W funkcji mysql_select_db, użyliśmy wywołania z aktualnym połączeniem $con: mysql_select_db($db, $con);
Jednak drugi argument jest zbędny możemy użyć po prostu mysql_select_db($db);

PRZYKŁAD 2:
Poniżej kod PHP bardziej rozbudowanej funkcji do połączenia z bazą danych MySQL.
Funkcja:
- nawiązuje połączenie z hostem bazy danych MySQL,
- podłącza nas do wybranej bazy danych MySQL,
- ustawia wybrane kodowanie w tym przypadku UTF-8 (połączenia, klienta, zwracanych wyników, itp.),
- zwraca odpowiedni komunikat w przypadku niepowodzenia (połączenia, ustawienia bazy, ustawienia odpowiedniego kodowania),
- zwraca uchwyt połączenia,
- idealnie nadaje się do developerki, zawsze wiemy gdy coś poszło nie tak!

<?php
function connect_to_db($host, $user, $pass, $db) {
        if(!($con = @mysql_connect($host, $user, $pass))) {
                echo “ERROR MySQL: Connect to Server\n”;
                exit;
        }
        if(!mysql_select_db($db, $con)) {
                echo “ERROR MySQL: Connect to DataBase\n”;
                exit;
        }
        if(!mysql_query(“SET NAMES ‘utf8′”, $con)) {
                echo “ERROR MySQL: SET NAMES ‘utf8′\n”;
                exit;
        }
        if(!mysql_query(“SET CHARACTER SET ‘utf8′”, $con)) {
                echo “ERROR MySQL: SET CHARACTER SET ‘utf8′\n”;
                exit;
        }
        if(!mysql_query(“SET character_set_client = ‘utf8′”, $con)) {
                echo “ERROR MySQL: SET character_set_client = ‘utf8′\n”;
                exit;
        }
        if(!mysql_query(“SET character_set_results = ‘utf8′”, $con)) {
                echo “ERROR MySQL: SET character_set_results = ‘utf8′\n”;
                exit;
        }
        if(!mysql_query(“SET character_set_connection = ‘utf8′”, $con)) {
                echo “ERROR MySQL: SET character_set_connection = ‘utf8′\n”;
                exit;
        }
        mb_internal_encoding(“UTF-8″);
        mb_regex_encoding(“UTF-8″);
        return $con;
}
// wywołujemy funkcję połączenia z bazą danych MySQL
$con = connect_to_db(‘locahost’, ‘user’, ‘pass’, ‘db’);
// [...]
// zamykamy połączenie z bazą danych – opcjonalnie
mysql_close($con);
?>

This entry was posted in MySQL, PHP and tagged , , , , , , , , , , . Bookmark the permalink.

Leave a Reply