そのため、私はPDOを使用して独自のDBクラスを作成する方法を学ぶ使命を帯びています。私はPDOとより複雑なクラス開発にかなり慣れていないので、コミュニティに深く入り込む前に、コミュニティから少しガイダンスをもらいたいと思っていました。私は部分的にクラスを構築していますが、これを行うにはより良い/より論理的な方法が必要であることを知っています。
DBクラスでほとんど何でも実行できるように、単一のクエリメソッドを使用できるようにしたいと考えています。これが間違った考えである場合は、理由を教えてください。
現在、DB定数が定義されたconfig.phpファイルとDBというクラスがあります。これが私のコードです:
index.phpの場合:
require_once 'config.php';
require_once '_inc/class.db.php';
$db = new DB();
そして私のクラス:
public $dbh;
public function __construct(){
$dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD);
}//end __construct
public function build_query( $args ){
$defaults = array(
'type' => 'SELECT',
'fields' => '*',
'table' => '',
'where' => '',
'orderby' => 'id',
'order' => 'DESC'
'offset' => '0',
'limit' => ''
);
$params = array_merge( $defaults, $args );
$sql = $params['type'];
$sql .= ' '.$params['fields'].' FROM '.$params['table'];
if( $params['where'] )
$sql .= ' WHERE '.$params['where'];
$sql .= ' ORDER BY '$params['orderby'].' '.$params['order'];
if( $limit )
$sql .= ' LIMIT '.$params['offset'].', '.$params['offset'];
return $sql;
}//end build_query
public function dbq( $args ){
$sql = $this->build_query( $args );
$this->$dbh->prepare( $sql );
return $this->$dbh->execute();
私はここで何かが欠けていることを知っています。より良いPHP開発者になるためにこれを本当に学びたいので、私を正しい方向に押してください。私はシングルトンパターンの使用について少し調べましたが、それがどのように機能し、どのように組み合わされているかを本当に知っている人々からもう少し情報を得たいと思いました。
前もって感謝します!