Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie durchlaufe ich eine MySQL-Abfrage mit PHP

Hier ist die grundlegende Vorlage für diese Art von Dingen, die integrierte PHP-Funktionen verwendet (unter der Annahme von mysql im alten Stil, aber ähnlich mit anderen Datenbank-Back-Ends oder Bibliotheken auf höherer Ebene). In diesem Beispiel werden Fehler behandelt, indem Ausnahmen ausgelöst werden, aber das ist nur eine Möglichkeit.

  1. Mit der Datenbank verbinden
  2. Stellen Sie sicher, dass die Verbindung erfolgreich war
  3. Führen Sie die Abfrage aus
  4. Stellen Sie sicher, dass die Abfrage nicht aus irgendeinem Grund fehlgeschlagen ist (normalerweise ein SQL-Syntaxfehler). Wenn es fehlgeschlagen ist, finden Sie den Grund heraus und behandeln Sie diesen Fehler
  5. Überprüfen Sie, ob die Abfrage mindestens eine Zeile zurückgegeben hat (null Zeilen sind normalerweise ein Sonderfall)
  6. Durchlaufen Sie die zurückgegebenen Zeilen und tun Sie, was immer Sie tun müssen.

Die Ausnahmeklassen müssten definiert werden (sie sind hier die einzige nicht eingebaute Syntax, aber Sie sollten keine Plain-Vanilla-Ausnahmen werfen).

Beispielcode:

<?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
    }
}