本を見ながら、PHPとMySQLを使った単純なwebアプリを試作しています。
今、認証の部分を作っているところです。
$idname=$_POST['username'];
$pw=$_POST['password'];
$idname=htmlspecialchars($idname);
$pw=md5($pw);
$dbh=new PDO('mysql:host=localhost;dbname=****;charset=utf8','*','**');
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql='SELECT * FROM meibo
WHERE idname=? AND password=?';
$stmt=$dbh->prepare($sql);
$data[]=$idname;
$data[]=$pw;
$stmt->execute($data);
$dbh=null;
$rec=$stmt->fetch(PDO::FETCH_ASSOC);
if($rec==false)
{
print '名前かパスワードが間違っています<br><br><a href="login.php">戻る</a></body></html>';
}
else
{
★★
session_start();
S_SESSION['login']=1;
}
↑
このような認証部分を書いたのですが、認証をクリアするたびに(ログインするたび)、ログイン回数を記録したいと思いたちました。
できれば★★のところに、$recのlogincountフィールドに対してUPDATEクエリを実行したいのですが、どう書けばいいのかわかりません。
結局、今は、改めて$dbhを取得するところからやりなおし、テーブルに対し
UPDATE logincount=logincount+1 WHERE idname=$idname
というのをやっています。
たぶんこれはよくないのではないか、既にUPDATE対象のレコードを$recに取得しているのだから、これに対し直接クエリを働きかけられないかと思うのですが、いかがでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/12 18:14