Maison > développement back-end > tutoriel php > Comment vérifier efficacement l'existence d'une ligne dans MySQL ?

Comment vérifier efficacement l'existence d'une ligne dans MySQL ?

Susan Sarandon
Libérer: 2024-12-27 17:52:14
original
602 Les gens l'ont consulté

How to Efficiently Check for the Existence of a Row in MySQL?

Vérification de l'existence d'une ligne dans MySQL

Dans les cas où vous devez déterminer la présence d'une ligne dans une base de données MySQL, il existe différentes approches disponibles. Plus précisément, vous souhaiterez peut-être vérifier si une adresse e-mail existe dans la base de données.

Utilisation d'instructions préparées

Pour améliorer la sécurité et empêcher l'injection SQL, les instructions préparées sont recommandées. approche :

MySQLi (Héritage)

$query = "SELECT 1 FROM `tblUser` WHERE email=?";
$stmt = $dbl->prepare($query);
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$emailExists = (bool)$row;
Copier après la connexion

MySQLi (Moderne - PHP 8.2)

$query = "SELECT 1 FROM `tblUser` WHERE email=?";
$result = $dbl->execute_query($query, [$email]);
$row = $result->fetch_assoc();
$emailExists = (bool)$row;
Copier après la connexion

PDO

$stmt = $conn->prepare('SELECT 1 FROM `tblUser` WHERE email = :email');
$stmt->execute([":email" => $_POST['email']]);
$row = $result->fetch();
$emailExists = (bool)$row;
Copier après la connexion

Général Considérations

  • Pour atténuer les attaques par injection SQL, les instructions préparées sont fortement recommandées.
  • Lorsque vous travaillez avec des tableaux POST, vérifiez leur présence, assurez-vous d'avoir une méthode POST et alignez les entrées noms avec des clés de tableau POST.
  • L'API mysql_* est obsolète ; envisagez de migrer vers mysqli ou PDO.
  • Vous pouvez également choisir d'appliquer une contrainte UNIQUE sur des lignes spécifiques.

Ressources supplémentaires

  • [Clé primaire MySQL Contrainte](https://dev.mysql.com/doc/refman/5.7/en/constraint-primary-key.html)
  • [MySQL Alter Table](https://dev.mysql.com /doc/refman/5.7/en/alter-table.html)
  • [Vérification des doublons Valeurs](https://stackoverflow.com/questions/2211298/how-to-check-if-a-value-already-exists-to-avoid-duplicates)

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