Puede verificar directamente el valor devuelto.
$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');
}
*/
Si se está preguntando acerca de la comprobación sin recuperar ni entonces simplemente tiene MySQL devuelve un 1
(o utilice el comando 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');
[ '$ stmt-> rowCount()'] (http://php.net/manual/en/pdostatement.rowcount.php) debe sea lo que necesite, pero comprobar si es * menor que * '0 'no ayudará - será * igual a *' 0' o * menor que * '1' – DaveRandom
@DaveRandom Los documentos indican que no todos los controladores causa 'SELECT' para dar un' rowCount'. Aparentemente deberías estar usando 'columnCount'. –
@arxanas Un punto justo, pero ejecutar francamente dos consultas solo para obtener el recuento de filas (como sugiere el manual) es una solución sucky. Incluso '$ rowCount = count ($ rows = $ stmt-> fetchAll())' es una mejor solución que esa, creo, y aún dará como resultado '0' si no hay filas. – DaveRandom