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);
?>
Artykuł utworzony: 2020-03-08 02:01:01: MySQL, PHP, połączenie z bazą danych MySQL w PHP, podłączenie do wybranej bazy danych MySQL, uchwyt połączenia mysql_connect, mysql_connect, mysql_select_db, mysql_close, nawiązanie połączenia z hostem bazy danych MySQL.