次のクエリが正常に実行されたかどうかを確認するにはどうすればよいですか?
_$STH = $this->_db->prepare("UPDATE UserCreds SET
VerificationString=:newVerificationString, ExpiryDate=:expiryDate
WHERE UserID = :userID;");
$STH->execute($params);
_
新しい行を追加するときにlastInsertId()
を使用できることはわかっていますが、UPDATEとSELECTはどうなりますか?
execute
は、成功するとtrue
を返し、失敗するとfalse
を返します。
成功した場合はTRUE、失敗した場合はFALSEを返します。
したがって、次のようにクエリが正常に実行されたことを確認できます。
if ($STH->execute($params))
{
// success
}
else
{
// failure
}
execute()は、クエリの成功/失敗に基づいてtrue/falseを返します。
$status = $STH->execute($params);
if ($status) {
echo 'It worked!';
} else {
echo 'It failed!';
}
注:行を返さない選択クエリは失敗ではありません。たまたま結果がないというのは、完全に有効な結果です。
単純に私は影響を受けた行の数を数えることができます:
$stmt->execute();
$count = $stmt->rowCount();
if($count =='0'){
echo "Failed !";
}
else{
echo "Success !";
}