Funkcja mysql_query() w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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.