sql >> Databáze >  >> RDS >> Mysql

Jak mohu procházet dotazem mysql s php

Zde je základní šablona pro tento druh věcí, používající vestavěné funkce php (předpokládá se starý styl mysql, ale podobný použití jiných databázových back-endů nebo knihoven vyšší úrovně). V tomto příkladu se chyby řeší vyvoláním výjimek, ale to je jen jeden způsob, jak to udělat.

  1. Připojte se k databázi
  2. Ujistěte se, že připojení bylo úspěšné
  3. Spusťte dotaz
  4. Ujistěte se, že dotaz z nějakého důvodu selhal (obvykle chyba syntaxe SQL). Pokud selhal, zjistěte proč a ošetřete tuto chybu
  5. Zkontrolujte, zda dotaz vrátil alespoň jeden řádek (nula řádků je obvykle zvláštní případ)
  6. Projděte vrácené řádky a udělejte, co potřebujete.

Třídy výjimek by musely být definovány (jsou zde jedinou nezabudovanou syntaxí, ale neměli byste vyvolávat plain-vanilla Exceptions).

Příklad kódu:

<?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. psycopg2.ProgrammingError na typu Enum při migraci databáze Flask (databáze).

  2. Sečtete hodiny ze sledování času do kalendáře podle dne

  3. Získání počtu řádků vložení/aktualizace z ON DUPLICATE KEY UPDATE

  4. VIF vracející aliasované koeficienty v R