2013-10-07 4 views
-1
$STH = $DBH -> prepare("select * from table where id = :id"); 
$STH -> bindParam(':id', $_SESSION['id'], PDO::PARAM_INT, 4); 
$STH -> execute(); 
$result = $STH -> fetch(); 

if(isset($result["id"])) { 
    // do this if records are returned 
} else { 
    // do this if no records are returned 
} 

По какой-то причине, первая часть if заявления выполняет даже если записи не возвращаются, почему это происходит? Я предполагаю, что это из-за isset, но не знаю, что тоже изменить?Wrong часть если утверждение выполняется

+0

Как вы понять, что никакие записи не возвращаются ?! – deceze

+1

Поместите 'var_dump ($ result)' внутри первой части вашего блока 'if' и найдите свой ответ –

+4

Почему бы просто не использовать' $ STH-> rowCount()> 0'? – aynber

ответ

3

лучшим подходом было бы использовать это в качестве условия:

if($STH->rowCount()>0){ 
    // do this if records are returned 
} else { 
    // do this if no records are returned 
} 
Смежные вопросы