Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zapętlić zapytanie mysql za pomocą php?

Oto podstawowy szablon dla tego typu rzeczy, wykorzystujący wbudowane funkcje php (zakładając mysql w starym stylu, ale podobny przy użyciu innych back-endów baz danych lub bibliotek wyższego poziomu). W tym przykładzie błędy są obsługiwane przez zgłaszanie wyjątków, ale to tylko jeden ze sposobów.

  1. Połącz się z bazą danych
  2. Upewnij się, że połączenie powiodło się
  3. Uruchom zapytanie
  4. Upewnij się, że zapytanie nie zakończyło się niepowodzeniem z jakiegoś powodu (zwykle błąd składni SQL). Jeśli się nie udało, dowiedz się, dlaczego i zajmij się tym błędem
  5. Sprawdź, czy zapytanie zwróciło co najmniej jeden wiersz (zwykle zero wierszy to przypadek szczególny)
  6. Zapętlaj zwrócone wiersze, robiąc wszystko, co musisz.

Klasy wyjątków musiałyby zostać zdefiniowane (są jedyną niewbudowaną składnią tutaj, ale nie powinieneś rzucać wyjątków typu plain-vanilla).

Przykładowy kod:

<?PHP
//try to connect to your database.
$conn = mysql_connect(...);

//handle errors if connection failed.
if (! $conn){
    throw new Db_Connect_Error(..); 
}   

// (try to) run your query.
$resultset = mysql_query('SELECT ...');

//handle errors if query failed.  mysql_error() will give you some handy hints.
if (! $resultset){ 
    // probably a syntax error in your SQL, 
    // but could be some other error
    throw new Db_Query_Exception("DB Error: " . mysql_error()); 
}

//so now we know we have a valid resultset

//zero-length results are usually a a special case    
if (mysql_num_rows($resultset) == 0){   
    //do something sensible, like tell the user no records match, etc....
}else{
    // our query returned at least one result. loop over results and do stuff.
    while($row = mysql_fetch_assoc($resultset)){
        //do something with the contents of $row
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql_fetch_assoc nie działa poprawnie

  2. Nieoczekiwane wyniki MySQL:klauzula IN (liczba, „ciąg”) w kolumnie varchar

  3. Wielotabelowe zapytanie MySQL zwracające zbyt wiele wyników

  4. Jak przeprowadzić migrację nowej struktury bazy danych MySQL z witryny deweloperskiej do witryny produkcyjnej za pomocą wiersza poleceń?

  5. MySQL LIKE vs LOCATE