sql >> Database teknologi >  >> RDS >> Mysql

Hvordan går jeg gennem en mysql-forespørgsel med php

Her er den grundlæggende skabelon for denne slags ting, ved hjælp af indbyggede php-funktioner (forudsat gammeldags mysql, men lignende ved brug af andre database back-ends eller højere niveau biblioteker). I dette eksempel håndteres fejl ved at kaste undtagelser, men det er kun én måde at gøre det på.

  1. Opret forbindelse til databasen
  2. Sørg for, at forbindelsen lykkedes
  3. Kør forespørgslen
  4. Sørg for, at forespørgslen ikke mislykkedes af en eller anden grund (normalt en SQL-syntaksfejl). Hvis det mislykkedes, skal du finde ud af hvorfor og håndtere den fejl
  5. Tjek, at forespørgslen returnerede mindst én række (nul rækker er typisk et specialtilfælde)
  6. Sløjfe over de returnerede rækker, og gør hvad end det er, du skal have gjort.

Undtagelsesklasserne skal defineres (de er den eneste ikke-indbyggede syntaks her, men du bør ikke smide almindelige vaniljeundtagelser).

Eksempelkode:

<?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. Opret en forespørgsel i SQL Server 2017

  2. Oracle SQL -- fjern delvis duplikat fra streng

  3. Kan jeg bruge en kolonne, jeg har valgt senere i en forespørgsel?

  4. En oversigt over MariaDB Xpand (tidligere ClustrixDB)