Comment créer des requêtes de base de données sécurisées avec l'extension MySQL
L'extension MySQL offre une approche rudimentaire mais fonctionnelle des interactions avec les bases de données en PHP. Bien qu'il ne s'agisse pas de l'option la plus recommandée, son utilisation appropriée peut atténuer les pièges potentiels en matière de sécurité et d'utilisabilité.
Considérations essentielles pour les requêtes sécurisées
Pour se prémunir contre les vulnérabilités courantes, il est crucial de adhérer aux meilleures pratiques :
Exemple de code pour MySQL sécurisé Interaction
Illustrons un script PHP sécurisé qui effectue une requête UPDATE sur la table 'tablename' :
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); }
Explication
Cet exemple de code montre comment exécuter une requête de mise à jour sécurisée à l'aide de l'extension MySQL. Il sert de référence aux développeurs cherchant à mettre en œuvre les meilleures pratiques dans leurs propres interactions avec les bases 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!