Maison  >  Article  >  développement back-end  >  Comment vérifier l’existence d’une ligne dans une base de données à l’aide de PDO ?

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

Susan Sarandon
Susan Sarandonoriginal
2024-10-22 10:32:02918parcourir

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>

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>

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!

Déclaration:
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