Maison > développement back-end > tutoriel php > Comment créer un exemple de code PHP MySQL sécurisé et sans erreur ?

Comment créer un exemple de code PHP MySQL sécurisé et sans erreur ?

Mary-Kate Olsen
Libérer: 2024-12-14 03:30:10
original
868 Les gens l'ont consulté

How to Create a Secure and Error-Free PHP MySQL Code Sample?

Exemple de code parfait utilisant l'extension MySQL

Problème :

Dans la quête pour créer une ressource d'apprentissage communautaire pour les requêtes de base de données PHP sécurisées et sans erreur, ce problème hypothétique présente la tâche de générer un exemple de code parfait à l'aide de l'extension MySQL. L'objectif est de résoudre les problèmes courants tels que l'injection SQL, le rapport d'erreurs et l'injection XSS.

Solution :

Pour résoudre les complexités liées à la gestion des entrées utilisateur et à la garantie des données intégrité, la solution fournie donne la priorité à la sécurité et à la simplicité.

<?php

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

$config = array(
    '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);
}
Copier après la connexion

Cet exemple de code encapsule la clé suivante principes :

  • Gère les jeux de caractères Unicode pour un plus large éventail de types de données.
  • Utilise une comparaison lâche pour améliorer la lisibilité.
  • Établit une connexion à une base de données et sélectionne un élément spécifique base de données pour l'opération.
  • Protège contre l'injection SQL en échappant aux entrées utilisateur à l'aide mysql_real_escape_string().
  • Gère les erreurs avec élégance en utilisant trigger_error() en cas d'échec, tout en supprimant les messages d'erreur en mode production.
  • Émet le message prévu une fois la mise à jour réussie de la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal