PDO の exec ステートメントを使用する多くの方法を見つけましたが、それが役立つかどうかはわかりません。私の理解では、準備されたステートメントには execute() 関数を使用する必要があります。ユーザー入力からのデータで行を更新しているので、query() 呼び出しの代わりに準備済みステートメントを使用したいと思います。
私のコードは次のとおりです。
$dbh = buildDBConnector();
$sql = "UPDATE tb_users
SET authState=1
WHERE id = ? AND authPass = ?";
$q = $dbh->prepare($sql);
$f = $q->execute(array($id,$authPass));
if($f){
echo '<br />Success<br />';
}else{
echo '<br />Failure<br />';
}
問題は、クエリ自体にエラーがなく、正常に実行されるため、$f への格納に失敗しないことです。ただし、実際に更新する行が見つかり、正常に更新されたかどうかを知る必要があります。つまり、影響を受ける行が必要です。グーグルなどでググるとexec文に出てくるのですが、私の理解ではexecは準備文ではないのでしょうか?助言がありますか?