English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP-MySQL-UPDATE

在本教程中,您将学习如何使用PHP更新MySQL表中的记录。

更新数据库表数据

UPDATE此语句用于更改或修改数据库表中的现有记录。此语句通常与WHERE子句结合使用,以便仅将更改应用于与特定条件匹配的那些记录。

Die Grund语法 des UPDATE-Befehls kann wie folgt dargestellt werden:

UPDATE table_name SET column1=value, column2=value2,... WHERE column_name=some_value

Lassen Sie uns eine SQL-Abfrage mit dem UPDATE-Befehl und WHERE-Klausel durchführen, um die Tabellenzeile zu aktualisieren, und führen Sie diese Abfrage durch, indem Sie sie an die PHP mysqli_query() -Funktion übergeben. Überlegen Sie sich die folgende persons-Tabelle in der Demonstrationsdatenbank:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email |
+----+------------+-----------+----------------------+
|  1 | Peter | Parker | [email protected] |
|  2 | John | Rambo | [email protected] |
|  3 | Clark | Kent | [email protected] |
|  4 | John | Carter | [email protected] |
|  5 | Harry | Potter | [email protected] |
+----+------------+-----------+----------------------+

Das folgende Beispiel mit PHP-Code wird die Zeile in der Tabelle persons aktualisieren, deren id dem Wert1der E-Mail-Adresse dieser Person.

Beispiel: prozeduraler Ansatz

<?php
/*Versuche, Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus.
Server mit Standardeinstellungen (Benutzer ohne Passwort "root") */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Verbindung überprüfen
if($link === false) {
    die("Fehler: Verbindungsfehler. ". mysqli_connect_error());
}
 
//Versuche, die Abfrage auszuführen
$_sql = "UPDATE persons SET email='[email protected]' WHERE id="1";
if(mysqli_query($link, $sql)){
    echo "Die Daten wurden erfolgreich aktualisiert.";
} else {
    echo "Fehler: Die Ausführung von $sql fehlgeschlagen. ". mysqli_error($link);
}
 
//Verbinde schließen
mysqli_close($link);
?>

Beispiel: objektorientierter Ansatz

<?php
/*Versuche, Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus.
Server mit Standardeinstellungen (Benutzer ohne Passwort "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Verbindung überprüfen
if($mysqli === false) {
    die("Fehler: Verbindungsfehler. ". $mysqli-connect_error);
}
 
//Versuche, die Abfrage auszuführen
$_sql = "UPDATE persons SET email='[email protected]' WHERE id="1";
if($mysqli-query($sql) === true) {
    echo "Die Daten wurden erfolgreich aktualisiert.";
} else{}}
    echo "Fehler: Der Befehl $_sql kann nicht ausgeführt werden. ". $_mysqli->error;
}
 
//Verbinde schließen
$_mysqli->close();
?>

Beispiel: PDO-Methoden

<?php
/*Versuche, Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus.
Server mit Standardeinstellungen (Benutzer ohne Passwort "root") */
try{
    $_pdo = new PDO("mysql:host=localhost;dbname=demo", "root", \
    //Setze PDO-Fehlermodus auf Exception
    $_pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $_e){
    die("Fehler: Verbindung kann nicht hergestellt werden. ". $_e->getMessage());
}
 
//Versuche, die Abfrage auszuführen
try{
    $_sql = "UPDATE persons SET email='[email protected]' WHERE id="1";    
    $_pdo->exec($_sql);
    echo "Die Daten wurden erfolgreich aktualisiert.";
} catch(PDOException $_e){
    die("Fehler: Der Befehl $_sql kann nicht ausgeführt werden. ". $_e->getMessage());
}
 
//Verbinde schließen
unset($pdo);
?>

Nach dem Update wird die Tabelle persons wie folgt aussehen:

+----+------------+-----------+--------------------------+
| id | first_name | last_name | email |
+----+------------+-----------+--------------------------+
|  1 | Peter | Parker | [email protected] |
|  2 | John | Rambo | [email protected] |
|  3 | Clark | Kent | [email protected] |
|  4 | John | Carter | [email protected] |
|  5 | Harry | Potter | [email protected] |
+----+------------+-----------+--------------------------+

Warnung:Die WHERE-Klausel in der UPDATE-Anweisung gibt an, welche Zeilen aktualisiert werden sollen. Wird die WHERE-Klausel weggelassen, werden alle Zeilen aktualisiert.