沃梦达 / 编程问答 / php问题 / 正文

如何使用PDO检查数据库中是否存在行?

How to check if a row exist in the database using PDO?(如何使用PDO检查数据库中是否存在行?)

本文介绍了如何使用PDO检查数据库中是否存在行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望有一个在该行根本不存在时执行某些操作的条件。

$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 (count($row) == 0)if($stmt->rowCount() < 0),但均不起作用。

推荐答案

您可以直接检查返回值。

$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';
}

/*
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Same here
if( ! $rows)
{
    echo 'nothing found';
}
*/

如果您询问在不提取的情况下检查,则只需让MySQL返回1(或使用COUNT()命令)。

$sql = 'SELECT 1 from table WHERE id = ? LIMIT 1';
//$sql = 'SELECT COUNT(*) from table WHERE param = ?'; // for checking >1 records
$stmt = $conn->prepare($sql);
$stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT);
$stmt->execute();

if($stmt->fetchColumn()) echo 'found';

这篇关于如何使用PDO检查数据库中是否存在行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何使用PDO检查数据库中是否存在行?

基础教程推荐