mysql_query() to dawna funkcja PHP służąca do wykonywania zapytań SQL w bazie MySQL. Występowała w starym rozszerzeniu mysql, które jest obecnie przestarzałe i zostało usunięte w PHP 7. We współczesnym kodzie należy używać mysqli albo PDO.
Co robi mysql_query()?
Funkcja wysyła zapytanie SQL do serwera MySQL, np.:
$x = mysql_query('SELECT * FROM mieszkanci');
W tym przykładzie wykonywana jest instrukcja SELECT, która ma pobrać wszystkie rekordy z tabeli mieszkanci.
Co zwraca mysql_query()?
W przypadku zapytań pobierających dane, np. SELECT, funkcja zwraca wynik zapytania, czyli zasób z danymi. Jeśli wykonanie zapytania się nie powiedzie, zwraca wartość false.
Dlatego często spotyka się zapis:
$x = mysql_query('SELECT * FROM mieszkanci');
if (!$x) {
echo 'Błąd w trakcie przetwarzania zapytania';
}
Operator ! oznacza negację. Warunek if (!$x) zostanie spełniony wtedy, gdy $x ma wartość fałszywą, czyli gdy zapytanie zakończyło się błędem.
Typowe przyczyny błędu zapytania
- nieistniejąca tabela, np.
mieszkanci, - literówka w składni SQL,
- brak uprawnień do tabeli,
- błędna nazwa kolumny,
- problem z połączeniem z bazą.
Ważne na egzaminie
Jeżeli mysql_query() zwraca false, oznacza to problem z wykonaniem zapytania SQL. Nie jest to komunikat o sukcesie ani bezpośrednio informacja o złym haśle czy nazwie bazy danych.