Comment vérifier l'existence d'une ligne dans une base de données à l'aide de PDO ?

Susan Sarandon
Libérer: 2024-10-22 10:32:02
original
917 Les gens l'ont consulté

How Can You Check the Existence of a Row in a Database Using PDO?

Comment vérifier l'existence d'une ligne dans une base de données à l'aide de PDO

Lorsque vous tentez d'effectuer une action conditionnelle à l'absence d'une ligne spécifique dans une base de données, vous pouvez rencontrer des difficultés avec l'utilisation de méthodes traditionnelles telles que count($row) == 0 ou if($stmt->rowCount() < 0).

Une approche plus efficace consiste à examiner directement la valeur de retour de la requête. L'extrait de code suivant illustre cette technique :

<code class="php">$stmt = $conn->prepare('SELECT * FROM table WHERE ID=?');
$stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if( ! $row)
{
    echo 'nothing found';
}</p>
<p>Cette méthode renverra true si la ligne existe dans la base de données, et false si ce n'est pas le cas.</p>
<p>Pour vérifier l'existence de plusieurs lignes , vous pouvez utiliser la méthode fetchAll() :</p>
<pre class="brush:php;toolbar:false"><code class="php">$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Same here
if( ! $rows)
{
    echo 'nothing found';
}</code>
Copier après la connexion

Dans les situations où vous souhaitez éviter de récupérer des données, vous pouvez configurer MySQL pour renvoyer une valeur booléenne en utilisant la requête suivante :

<code class="php">$sql = 'SELECT 1 from table WHERE id = ? LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->execute([$_GET['id']]);

if($stmt->fetchColumn()) echo 'found';</code>
Copier après la connexion

Cette méthode renverra une valeur non nulle si la ligne existe dans la base de données et false sinon.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!