Att ta bort data från en MySQL -databas med PHP innebär flera steg:
1. Upprätta en databasanslutning: Du måste ansluta till din MySQL -databas med en PHP MySQLI -förlängning eller PDO (PHP -dataobjekt). MySQLI är i allmänhet att föredra för sin objektorienterade strategi, men PDO erbjuder bättre databasportabilitet.
2. Förbered och kör en raderingsfråga: Du konstruerar ett SQL `Delete` -uttalande för att ange vilka rader du ska ta bort. Avgörande bör du alltid Använd förberedda uttalanden för att förhindra SQL -injektionssårbarheter.
3. Hantera fel: Kontrollera om det finns fel under anslutningsprocesserna för anslutning och fråga.
Så här skulle du göra det med både MySQLI och PDO:
Använda Mysqli:
`` `php
php
// databasuppgifter
$ Servername ="Your_Servername";
$ användarnamn ="your_username";
$ lösenord ="your_password";
$ dbname ="your_dbname";
// Skapa anslutning
$ conn =new mysqli ($ servername, $ användarnamn, $ lösenord, $ dbname);
// Kontrollera anslutningen
if ($ conn-> connect_error) {
Die ("Anslutning misslyckades:". $ conn-> connect_error);
}
// Förbered och binda
$ stmt =$ conn-> förbereda ("ta bort från din_table där id =?"); // Byt ut 'your_table' och 'id' i enlighet därmed
$ stmt-> bind_param ("i", $ id); // 'i' anger att $ id är ett heltal. Justera datatyp efter behov.
// Ställ in parametrar och kör
$ id =123; // ID för raden att radera
$ stmt-> execute ();
// Kontrollera om det finns fel
if ($ stmt-> fel) {
die ("Fel Radering Data:". $ STMT-> ERROR);
}
Echo "Data raderade framgångsrikt";
// Stäng uttalande och anslutning
$ stmt-> close ();
$ conn-> close ();
?>
`` `
med PDO:
`` `php
php
// databasuppgifter
$ Servername ="Your_Servername";
$ användarnamn ="your_username";
$ lösenord ="your_password";
$ dbname ="your_dbname";
försök {
$ conn =new Pdo ("Mysql:host =$ servername; dbname =$ dbname", $ användarnamn, $ lösenord);
// Ställ PDO -felläget till undantag
$ conn-> setAttribute (PDO ::Attr_errMode, PDO ::ErrMode_Exception);
// Förbered och kör Radera uttalande
$ stmt =$ conn-> förbereda ("ta bort från din_table där id =:id"); // namngivna parametrar föredras ofta
$ stmt-> bindparam (':id', $ id, pdo ::param_int); //:id är platshållaren, $ id är värdet, pdo ::param_int anger datatypen
$ id =123; // ID för raden att radera
$ stmt-> execute ();
Echo "Data raderade framgångsrikt";
} catch (pdoException $ e) {
echo "fel Radering av data:". $ e-> getMessage ();
}
$ conn =null; // Stäng anslutningen
?>
`` `
Viktiga överväganden:
* Byt ut platshållare: Se till att ersätta `" your_servername "`, `" your_username "`, `" your_password "`, `" your_dbname "`, `" your_table "och` id` med dina faktiska databasuppgifter och tabell/kolumnnamn. "ID" -variabeln bör representera den unika identifieraren för raden (de) du vill ta bort.
* Datatyper: Se till att datatypen i `bind_param '(mysqli) eller` bindparam' (PDO) matchar kolumntypen i din databastabell. Felaktiga datatyper kan leda till fel.
* där klausul: Klausulen "där" är avgörande. Utan det kommer uttalandet "Delete" att ta bort * alla * rader från tabellen! Använd lämpliga villkor för att bara välja de rader du tänker ta bort.
* Transaktioner (för flera borttagningar): För att ta bort flera rader eller utföra flera databasoperationer som en del av en enda logisk arbetsenhet, använd transaktioner för att säkerställa atomicitet (alla operationer lyckas eller ingen gör). Både MySQLI och PDO stöder transaktioner.
* Felhantering: Robust felhantering är avgörande. Exemplen visar grundläggande felkontroll; Du kanske vill ha mer sofistikerad felloggning och hantering i en produktionsmiljö.
* Säkerhet: aldrig Inbäddade direkt användaruppleverade data i dina SQL-frågor. Använd alltid förberedda uttalanden eller parametrerade frågor för att förhindra SQL -injektionsattacker.
Kom ihåg att aktivera MySQLI -tillägget eller installera PDO -tillägget i din PHP -konfiguration om de inte redan är aktiverade. Du kan vanligtvis göra detta genom att ändra din "php.ini" -fil.