Я новичок в PHP OOP. Ниже приведен мой ОЧЕНЬ ПЕРВЫЙ файл класса. Я хотел бы добавить дополнительную гибкость в этот код, добавить функции, чтобы я мог запускать запросы и даже назначать результаты (fetch_assoc / fetch_array) для массива (или var и т. Д.) Для последнего использования.
Проблема, с которой я сталкиваюсь в выполнении запросов, заключается в том, что я не могу собрать оба класса (вложенные?): $db->Query->Select('myTable');
OR $db->Query->Select('myTable')->Where($pageID);
OR $db->Query->Select('myTable')->Where($pageID)->OrderBy('name');
ТАКЖЕ, я был бы признателен, если бы вы сообщили мне, есть ли что-то, что я делаю неправильно в этом коде и предложения по улучшению, поэтому я могу писать лучшие php-классы в будущем =).
<?php require( $_SERVER['DOCUMENT_ROOT'] . '/database/database-connection-info.php'); //This file (database-connection-info.php) contains $config[]; class db { private $db; private $type = 'read-only'; //$config['db']['dbh'] = Database Host //$config['db']['dbn'] = Database Name //$config['db'][$type]['dbu'] = [User type][user name] //$config['db'][$type]['dbp'] = [User type][password] public function __construct($type = null) { global $config; $this->config = $config; $this->Connect($type); } public function Connect($type) { global $config; switch( $type ) { case 'admin': $this->type = 'admin'; $this->db = mysql_connect( $this->config['db']['dbh'] , $this->config['db'][$type]['dbu'] , $this->config['db'][$type]['dbp'] ); return $this->db; default: $this->type = 'read-only'; $type = 'read'; $this->db = mysql_connect( $this->config['db']['dbh'] , $this->config['db'][$type]['dbu'] , $this->config['db'][$type]['dbp'] ); return $this->db; } } public function Close() { mysql_close(); mysql_close($this->db); $this->type = 'Closed'; } public function Type() { return "<b>Database connection type</b>: " . $this->type . "<br/>"; } public function Status() { if( !@mysql_stat($this->db) ) { return "<b>Database connection status</b>: There is no database connection open at this time.<br/>"; } else { return "<b>Database connection status</b>: " . mysql_stat($this->db) . "<br/>"; } } } //For testing purposes $db = new db(admin); echo $db->Type(); echo $db->Status(); echo $db->Close(); echo $db->Status(); echo $db->Type(); ?>