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

标签 php pdo row

我想要一个条件,当该行根本不存在时执行某些操作。

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

关于php - 如何使用 PDO 检查数据库中是否存在一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11974613/

相关文章:

php - Yii - 在 GridView 单元格内渲染小部件

javascript - 根据所选项目提交表格

php - 使用 PHP/PDO 存储数据的安全性

html - 响应式布局在 FF 和 IE 中不一致

matlab - 更改 Matlab 中的整列和行

php - 将 "status"数据插入AuthController中的数据库

php - 如何逐步将站点转换为 CodeIgniter?

PHP + mySQL + Pdo 查询速度性能

php - 如何使用 PHP PDO 解析 MySQL 数据库中的对象数据?

php - 如何更新表行并在行字段中添加+1?