前提・実現したいこと
PHPとMySQLを使ってサインアップするシステムを作っています。
メールアドレスの重複登録防止機能の実装。
発生している問題・エラーメッセージ
メールアドレスを使用し重複登録の防止機能を実装していますが上手くいきません。
通常にサインアップする際は登録も出来ます。データベースにも情報が保管されてますが、
この状態でもう一度同じメールアドレスを使用してサインアップするとエラー出ずに重複登録できる状態です。
該当のソースコード
ソースコード
<?php session_start(); require('./dbconnect.php'); if (empty($error)) { $member=$db->prepare('SELECT COUNT (*) AS cnt FROM members WHERE email=?'); $member->execute(array($_POST['email'])); $record=$member->fetch(); if ($record['cnt'] > 0) { $error['email'] = 'duplicate'; } } if(empty($error)){ $_SESSION['join'] = $_POST; header('Location: check.php'); exit(); } } ?>
~dbconnect.php~ <?php try { $db = new PDO('mysql:host=hostname;dbname=dbname;charset=utf8','username','pwd'); }catch(PDOException $e){ exit('データベース接続失敗。'.$e->getMessage()); } ?>
テーブル定義
テーブル:member
カラム:
Id int PK設定
name varchar
email varchar
psw varchar
created datetime
modified timestamp
試したこと
$member=$db->prepare("select * from members where email = :email limit 1");
とか試しましたが改善なしです。
お力添え頂ければ幸いです。
補足情報(FW/ツールのバージョンなど)
PHP
Mysql(5.7)
ここにより詳細な情報を記載してください。