下記のようなメールアドレスが重複していないかをチェックするクラスがあったとします。
class email{ function collation(){ $dsn = 'mysql:dbname=test;host=localhost;charset=utf8'; $user = 'root'; $password = ''; $email = filter_input(INPUT_POST, 'email1'); try{ $option = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); $dbh = new PDO($dsn, $user, $password, $option); $sql = 'select count(*) as cnt from userdata where email=?'; $stmt = $dbh->prepare($sql); $arrParam = array(); $arrParam[] = $email; $stmt->execute($arrParam); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (0 < $row['cnt']) { $error = '<div class="r_em">' . "{$email}は既に登録されています" . '</div>'; return $error; } } catch (PDOException $e) { $error = $e->getMessage(); return $error ; } } }
今回はメールアドレスの重複確認ということで上記の様なコードですが、
例えば
・DBに何かしらの情報を登録したい
・DBに登録されている内容を修正したい
・DBに登録されている内容を削除したい
・DBに登録されている内容を検索したい
というようなプログラムを今後書いていく可能性をがあったとして、
$dsn = 'mysql:dbname=test;host=localhost;charset=utf8'; $user = 'root'; $password = ''; $email = filter_input(INPUT_POST, 'email1'); $option = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); $dbh = new PDO($dsn, $user, $password, $option);
の部分をクラス化(class DBとでもしましょうか)して
class aaa extends DB{
処理内容
}
というような使い方をしていきたいのですが、冒頭のコードの場合、
・DBに接続するクラス(スーパークラス)
・メールアドレスの重複をチェックするクラス(サブクラス)
この2つに分けられると思うのですが、記述内容としてはどう描くと実現できそうでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/09 13:26