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
Freigeben: 2024-12-15 01:04:18
Original
214 Leute haben es durchsucht

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);
}
?>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage