PDO / 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 (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)

{

die('nothing found');

}

/*

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Same here

if( ! $rows)

{

die('nothing found');

}

*/

如果您询问是否进行检查 而不进行获取, 则只需让MySQL返回a 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()) die('found');

以上是 PDO / PHP-检查行是否存在 的全部内容, 来源链接: utcz.com/qa/403961.html

回到顶部