所以我的任务是学习如何使用 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 开发人员。我确实看过一点使用单例模式,但想从真正了解这一切如何运作和组合在一起的人那里获得更多信息。
提前致谢!