web-dev-qa-db-ja.com

PHP PDOでクエリが正常に実行された時期を知る方法は?

次のクエリが正常に実行されたかどうかを確認するにはどうすればよいですか?

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

新しい行を追加するときにlastInsertId()を使用できることはわかっていますが、UPDATEとSELECTはどうなりますか?

20
Chuck Le Butt

executeは、成功するとtrueを返し、失敗するとfalseを返します。

ドキュメントから:

成功した場合はTRUE、失敗した場合はFALSEを返します。


したがって、次のようにクエリが正常に実行されたことを確認できます。

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

execute()は、クエリの成功/失敗に基づいてtrue/falseを返します。

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

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

注:行を返さない選択クエリは失敗ではありません。たまたま結果がないというのは、完全に有効な結果です。

16
Marc B

単純に私は影響を受けた行の数を数えることができます:

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

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