För att köra en MySQL -fråga från en PHP -fil måste du skapa en anslutning till MySQL -databasen, förbereda och köra frågan och sedan hantera resultaten. Så här använder du MySQLI -förlängningen (rekommenderas över den äldre MySQL -förlängningen, som är avskriven):
1. Upprätta en databasanslutning:
Detta handlar om att ansluta till din MySQL -server med rätt referenser. Byt ut platshållarna med dina faktiska referenser:
`` `php
php
$ servername ="localhost";
$ användarnamn ="your_username";
$ lösenord ="your_password";
$ dbname ="your_database_name";
// Skapa anslutning
$ conn =new mysqli ($ servername, $ användarnamn, $ lösenord, $ dbname);
// Kontrollera anslutningen
if ($ conn-> connect_error) {
Die ("Anslutning misslyckades:". $ conn-> connect_error);
}
Echo "ansluten framgångsrikt
";
?>
`` `
2. Förbered och kör frågan:
Det här avsnittet visar att förbereda frågan för att förhindra SQL -injektionssårbarheter och sedan utföra den. Använd alltid förberedda uttalanden för att skydda mot SQL -injektion.
`` `php
php
// Exempel Fråga för att välja alla data från en tabell med namnet 'Användare'
$ SQL ="Välj ID, namn, e -post från användare";
// Förbered uttalandet
$ stmt =$ conn-> förbereda ($ sql);
// Utför uttalandet
if ($ stmt-> execute ()) {
// ... Hantera resultat (se avsnitt 3) ...
} annat {
echo "fel:". $ stmt-> fel;
}
?>
`` `
3. Hantera resultaten:
Hur du hanterar resultaten beror på typen av fråga.
* `Välj` Queries: Dessa returdata. Du måste binda resultat till variabler och hämta dem.
`` `php
php
// binda resultat
$ stmt-> bind_result ($ id, $ name, $ e-post);
// hämta resultat
echo "
| id | namn | e -post |
";
medan ($ stmt-> hämta ()) {
echo "
| ". $ id. " | ". $ Namn." | ". $ E -post." |
";
}
echo "
";
// Stäng uttalande
$ stmt-> close ();
?>
`` `
* `infoga`,` update`, `ta bort` queries: Dessa modifierar data. Du kontrollerar främst för fel. Egenskapen `påverkade_rows 'berättar hur många rader som påverkades.
`` `php
php
// Exempel Infoga fråga
$ sql ="infoga i användare (namn, e -post) värden (?,?)";
$ stmt =$ conn-> förbereda ($ sql);
$ name ="John Doe";
$ e -post ="john.doe@example.com";
$ stmt-> bind_param ("ss", $ namn, $ e-post); // "SS" Anger datatyper:String, String
if ($ stmt-> execute ()) {
Echo "Ny post skapades framgångsrikt. Påverkade rader:". $ STMT-> AVSKRIVA_ROWS;
} annat {
echo "fel:". $ stmt-> fel;
}
$ stmt-> close ();
?>
`` `
4. Stäng anslutningen:
Stäng alltid databasanslutningen när du är klar.
`` `php
php
$ conn-> close ();
?>
`` `
Komplett exempel (Välj fråga):
`` `php
php
$ servername ="localhost";
$ användarnamn ="your_username";
$ lösenord ="your_password";
$ dbname ="your_database_name";
$ conn =new mysqli ($ servername, $ användarnamn, $ lösenord, $ dbname);
if ($ conn-> connect_error) {
Die ("Anslutning misslyckades:". $ conn-> connect_error);
}
$ SQL ="Välj ID, namn, e -post från användare";
$ stmt =$ conn-> förbereda ($ sql);
$ stmt-> execute ();
$ stmt-> bind_result ($ id, $ name, $ e-post);
echo "
| id | namn | e -post |
";
medan ($ stmt-> hämta ()) {
echo "
| ". $ id. " | ". $ Namn." | ". $ E -post." |
";
}
echo "
";
$ stmt-> close ();
$ conn-> close ();
?>
`` `
Kom ihåg att ersätta platshållarvärdena med dina faktiska databasuppgifter och tabellnamn. Se också till att MySQLI -tillägget är aktiverat i din PHP -konfiguration. Om du stöter på problem, kolla dina PHP -felloggar för mer information. Att använda PDO (PHP -dataobjekt) är ett annat utmärkt och mer mångsidigt alternativ för databasinteraktioner i PHP. Principerna är liknande, men syntaxen är något annorlunda.