我想要一个条件,以防该行根本不存在。
$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)但没有一个起作用。
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()命令)。
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');