クラスを使用してデータをクラスに変換する最良の方法を見つけようとしていますが、同じクラスを使用してテーブルに挿入したり情報を返したりしていますが、それを行う最良の方法がわかりません。コンストラクターが概念的に問題を引き起こしているようです。現在、次を使用してすべてのレコードをクラスにクエリするページがあります。
$query->fetchAll(PDO::FETCH_CLASS, "Contact", array($dbh))
そしてもちろん、各レコードを「連絡先」クラスに配置し、各行を同じ名前のプライベート データ メンバーと、レコードの追加/更新/削除用のデータベース接続ハンドルに配置します。それは完全にうまくいきます。しかし、生データをクラスに変換すると問題が発生します。[私の知る限り]上記のコードの構文に従っていると、他のコンストラクターパラメーターを指定できないか、ずさんなハックになります。ここに私が持っているコードがあります:
class Contact {
private $dbh;
private $Contact_ID;
private $Contact_First_Name;
private $Contact_Last_Name;
private $Contact_Email;
private $Contact_Phone_Number;
public function __construct($dbh) {
$this->dbh = $dbh;
}
// ..
}
そのため、フォームのデータを使用して新しい Contact オブジェクトを作成しようとすると、データ メンバーを格納する方法がありません。デフォルトのパラメーターを使用して動作するようにハックを試み、デフォルト値が変更されないようにチェックしました (これは fetchAll() の一部であるため)。
ありがとう。