如何测试以查看以下查询是否成功执行?
$STH = $this->_db->prepare("UPDATE UserCreds SET
VerificationString=:newVerificationString, ExpiryDate=:expiryDate
WHERE UserID = :userID;");
$STH->execute($params);
我知道在添加新行时可以使用lastInsertId()
,但UPDATE和SELECT会怎样?
答案 0 :(得分:38)
execute
成功时返回true
,失败时返回false
。
成功时返回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";
}
}