Opdatering af data kan være ret simpelt. Lad os starte med en formular, for det første:
<form method="post" action="submit.php">
<input type="text" name="id" value="12" />
<input type="text" name="value" value="Jonathan" />
<input type="submit" />
</form>
Denne formular sender dataene til vores submit.php
script, hvor vi kan håndtere det, og videregive det til vores database. Da vores formularmetode er "post", vil alle vores værdier blive sendt via POST
super array i PHP (dette er ikke tilfældet, hvis du bruger filuploadere). Så inden for vores submit.php
side, kan vi udskrive ID- og Værdi-værdierne som denne:
print $_POST["id"]; // the name of the HTML element is the key
print $_POST["value"]; // again, note that we use the name as the key
Du skal være forsigtig med at overføre brugerindsendte værdier direkte til dine forespørgsler, så det er rart at rydde op i dataene ved hjælp af en funktion som mysql_real_escape_string()
:
$id = mysql_real_escape_string( $_POST["id"] );
$value = mysql_real_escape_string( $_POST["value"] );
Den næste ting, vi vil gøre, er at placere disse i en forespørgsel:
$sql = "UPDATE mytable SET value = '{$value}' WHERE id = {$id}";
Det er et godt tidspunkt ikke at sige, at jeg ikke opfordrer dig til at bruge denne eksempelkode i et levende miljø. Du skal slå sql-injektioner op, og hvordan du undgår dem. Den kode, jeg giver her, er kun et eksempel. Efter at vores værdier er indtastet, ser den forespørgsel, der vil blive kørt, faktisk sådan ud:
UPDATE mytable SET value = 'Jonathan' WHERE id = 12
Nu, for at køre dette, skal vi være forbundet til en database.
$host = "localhost";
$user = "root";
$pass = "";
$database = "myDatabase";
$conn = mysql_connect($host, $user, $pass) or die( mysql_error() );
mysql_select_db($database) or die( mysql_error() );
Alt, hvad vi gør her, er at gemme vores mysql-brugerkonto-legitimationsoplysninger i arrays og overføre dem til en forbindelsesfunktion. Denne kode burde være ret selvforklarende, men lad mig vide, hvis den overhovedet er uklar.
Når du har fået det, er du klar til at køre din forespørgsel. Husk, at vi gemte det i et array kaldet $sql
:
$result = mysql_query( $sql ) or die( mysql_error() );
Det er det. Du gjorde det! Dataene, forudsat at intet gik galt, er nu opdateret i din database. Der er adskillige måder, hvorpå du kan øge den information, der gives tilbage til brugeren via dette script. Det er også værd at bemærke, at du gerne vil rense dine data, før du overhovedet tillader scriptet at køre - hvis det ikke er acceptable data (nogen forsøger at injicere deres egne forespørgsler), vil du gerne spytte det tilbage.
Tjek MySQL-funktionerne i PHP-dokumentationen for flere lækkerier, og sørg for at vende tilbage hertil, når du har mere specifikke spørgsmål!