Heim >Backend-Entwicklung >PHP-Tutorial >Wie aktualisiere ich eine MySQL-Datenbank sicher mit der MySQLi-Erweiterung in PHP?

Wie aktualisiere ich eine MySQL-Datenbank sicher mit der MySQLi-Erweiterung in PHP?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-15 01:04:18214Durchsuche

How to Securely Update a MySQL Database Using the MySQLi Extension in PHP?

Perfektes MySQL-Erweiterungscodebeispiel

Ziel dieser Frage ist es, ein prägnantes und sicheres PHP-Codebeispiel unter Verwendung der MySQL-Erweiterung bereitzustellen. Der Code sollte häufige Fehler im Zusammenhang mit den mysql_*-Funktionen vermeiden, einschließlich:

  • SQL-Injection
  • Fehlerhafte Fehlerberichterstattung
  • Cross-Site-Scripting (XSS)-Injections

Code Beispiel:

<?php

header('Content-type: text/html; charset=utf-8');
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

$config = [
    'host' => '127.0.0.1',
    'user' => 'my_user',
    'pass' => 'my_pass',
    'db' => 'my_database'
];

$connection = @mysql_connect($config['host'], $config['user'], $config['pass']);

if (!$connection) {
    trigger_error('Unable to connect to database: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_select_db($config['db'])) {
    trigger_error('Unable to select db: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_set_charset('utf8')) {
    trigger_error('Unable to set charset for db connection: ' . mysql_error(), E_USER_ERROR);
}

$result = mysql_query(
    'UPDATE tablename SET name = "' . mysql_real_escape_string($_POST['name']) . '" WHERE id = "' . mysql_real_escape_string($_POST['id']) . '"'
);

if ($result) {
    echo htmlentities($_POST['name'], ENT_COMPAT, 'utf-8') . ' updated.';
} else {
    trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR);
}
?>

Erklärung:

  • Dieser Code stellt mithilfe von mysql_connect() eine Verbindung zur MySQL-Datenbank her und gibt die Datenbank an, die mit mysql_select_db verwendet werden soll ().
  • Die Funktion mysql_set_charset() wird verwendet, um den Zeichensatz festzulegen die Verbindung zu UTF-8.
  • Die SQL-Update-Abfrage wird mithilfe von Platzhaltern und der Funktion mysql_real_escape_string() erstellt, um SQL-Injection zu verhindern.
  • Das Abfrageergebnis wird überprüft und die Meldung „$name aktualisiert.“ wird angezeigt, wenn das Update erfolgreich war. Andernfalls wird ein Fehler ausgelöst.
  • Fehlerberichte sind aktiviert, um ein besseres Debugging während der Entwicklung zu ermöglichen. Im Produktionsmodus kann diese Einstellung deaktiviert werden, um PHP-Fehlermeldungen an den Endbenutzer zu unterdrücken.

Beachten Sie, dass dieses Codebeispiel als Referenz bereitgestellt wird und nicht als vollständige Lösung für alle PHP-Anwendungen betrachtet werden sollte . Es wird empfohlen, die PDO-Erweiterung für moderne MySQL-Anwendungen zu verwenden, da sie mehr Sicherheit und Leistung bietet.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine MySQL-Datenbank sicher mit der MySQLi-Erweiterung in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn