如何在PHP PDO中成功执行查询?

时间:2012-03-01 17:44:10

标签: php mysql pdo

如何测试以查看以下查询是否成功执行?

$STH = $this->_db->prepare("UPDATE UserCreds SET
    VerificationString=:newVerificationString, ExpiryDate=:expiryDate 
    WHERE UserID = :userID;");
$STH->execute($params);

我知道在添加新行时可以使用lastInsertId(),但UPDATE和SELECT会怎样?

4 个答案:

答案 0 :(得分:38)

execute成功时返回true,失败时返回false

From Docs:

  

成功时返回TRUE,失败时返回FALSE。


因此,您可以确保查询成功运行,如:

if ($STH->execute($params))
{
  // success
}
else
{
  // failure
}

答案 1 :(得分:16)

execute()根据查询的成功/失败返回true / false:

$status = $STH->execute($params);

if ($status) {
   echo 'It worked!';
} else {
   echo 'It failed!';
}

一个注意事项:不返回任何行的选择查询不是失败的。这是一个非常有效的结果,恰好没有结果。

答案 2 :(得分:3)

我只能计算受影响的行数:

$stmt->execute();
$count = $stmt->rowCount();

if($count =='0'){
    echo "Failed !";
}
else{
    echo "Success !";
}

答案 3 :(得分:-3)

这是验证Doctrine查询结果返回成功或失败的最佳方法 结果和以上相同的方式建议检查天气查询 返回成功 失败

    public static function removeStudent($teacher_id){
        $q = Doctrine_Query::create()
            ->delete('Student s')
            ->where('s.teacher_id = ?');

        $result = $q->execute(array($teacher_id));

        if($result)
        {
         echo "success";
        }else{
         echo "failed";
        }
    }