sql >> Databasteknik >  >> RDS >> Mysql

Bra handledning om hur du uppdaterar din Mysql-databas med ett PHP-formulär?

Att uppdatera data kan vara ganska enkelt. Låt oss börja med ett formulär, till att börja med:

<form method="post" action="submit.php">
  <input type="text" name="id" value="12" />
  <input type="text" name="value" value="Jonathan" />
  <input type="submit" />
</form>

Detta formulär skickar data till vår submit.php skript där vi kan hantera det och skicka det till vår databas. Eftersom vår formulärmetod är "post", kommer alla våra värden att skickas via POST super array i PHP (detta är inte fallet om du använder filuppladdare). Så inom vår submit.php sida kan vi skriva ut ID- och värdevärdena så här:

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 bör vara försiktig med att skicka användarinskickade värden direkt till dina frågor, så det är trevligt att rensa upp data med en funktion som mysql_real_escape_string() :

$id = mysql_real_escape_string( $_POST["id"] );
$value = mysql_real_escape_string( $_POST["value"] );

Nästa sak vi vill göra är att placera dessa i en fråga:

$sql = "UPDATE mytable SET value = '{$value}' WHERE id = {$id}";

Det här är en bra tid att inte säga att jag inte uppmuntrar dig att använda den här exempelkoden i en livemiljö. Du kommer att vilja slå upp sql-injektioner och hur du undviker dem. Koden jag ger här är bara ett exempel. Efter att våra värden har angetts ser frågan som kommer att köras faktiskt ut så här:

UPDATE mytable SET value = 'Jonathan' WHERE id = 12

Nu, för att köra detta, måste vi vara anslutna till en databas.

$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() );

Allt vi gör här är att lagra våra mysql-användarkontouppgifter i arrayer och skicka dem till en connect-funktion. Den här koden borde vara ganska självförklarande, men låt mig veta om den alls är otydlig.

När du har fått det är du redo att köra din fråga. Kom ihåg att vi lagrade det i en array som heter $sql :

$result = mysql_query( $sql ) or die( mysql_error() );

Det är allt. Du gjorde det! Uppgifterna, förutsatt att inget gick fel, uppdateras nu i din databas. Det finns många sätt du kan öka informationen som ges tillbaka till användaren via detta skript. Värt att notera är också att du vill rensa dina data innan du ens låter skriptet köras - om det inte är acceptabelt data (någon som försöker injicera sina egna frågor) vill du spotta tillbaka det.

Kolla in MySQL-funktionerna i PHP-dokumentationen för fler godsaker, och se till att återkomma hit när du har mer specifika frågor!




  1. Hur tvingar man fram skiftlägeskänsliga tabellnamn?

  2. hur partitionerar man en tabell efter kolumn datum och tid?

  3. UPPDATERA syntax med ORDER BY, LIMIT och flera tabeller

  4. Postgres Vänster Gå med där skick