Tidy up your study Aaron Saray Write some demo s of PHP design patterns and their own understanding. If you find that your contempt has misunderstood, please point out immediately. Thank you for patting bricks and kneeling for whipping.
/** * DAO (Data Access Objects) Data Access Objects * ------------------------------------- * ** From Explanation** * * Data Access Object Design Patterns describe how to create objects that provide transparent access to any data source * * The aim is to solve the following two specific problems: * 1. Repetition * 2. Data source abstraction * Data Access Object Schema Provides Database Abstraction Layer * Now, the application's main processing code no longer considers database engines or table relationships * Calling the common method of this object returns any data type, regardless of the type required by the inherent SQL * * ===================================== * ** Application Scenarios** * * Data access * * ------------------------------------- * * @version ${Id}$ * @author Shaowei Pu <54268491@qq.com> */
abstract class baseDao{ /** * [$_connection Connection object] * @var [type] */ private $_connection; /** * [__construct Instantiate database connection] * @author Shaowei Pu <pushaowei@sporte.cn> * @CreateTime 2017-02-22T17:52:04+0800 */ public function __construct(){ try{ $this->_connection = new \PDO("mysql:dbname=mysql;host=localhost","root","pushaowei"); $this->_connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); }catch(PDOException $e){ die('error:'.$e->getMessage()); } } /** * [feach description] * @author Shaowei Pu <pushaowei@sporte.cn> * @CreateTime 2017-02-22T18:01:48+0800 * @return [type] [description] */ public function fetch( $value , $key = ''){ // SQL START $sql = 'SELECT * FROM '.$this->_tablename.' WHERE '.$key.' = "'.$value.'"'; // output $dispose = $this->_connection->query($sql); return $dispose->fetch(PDO::FETCH_ASSOC); } } class selectHandle extends baseDao{ /** * [$_tablename Get the table name] * @var string */ protected $_tablename = 'db'; /** * [getValue description] * @author Shaowei Pu <pushaowei@sporte.cn> * @CreateTime 2017-02-22T18:06:58+0800 * @param [type] $value [description] * @return [type] [description] */ public function getDbValue( $value ){ $result = parent::fetch( $value, 'Host' ); return $result; } } $select = new selectHandle; var_dump($select->getDbValue('localhost')); /* +---------------------------------------------------------------------- | array (size=22) | 'Host' => string 'localhost' (length=9) | 'Db' => string 'sys' (length=3) | 'User' => string 'mysql.sys' (length=9) | 'Select_priv' => string 'N' (length=1) | 'Insert_priv' => string 'N' (length=1) | 'Update_priv' => string 'N' (length=1) | 'Delete_priv' => string 'N' (length=1) | 'Create_priv' => string 'N' (length=1) | 'Drop_priv' => string 'N' (length=1) | 'Grant_priv' => string 'N' (length=1) | 'References_priv' => string 'N' (length=1) | 'Index_priv' => string 'N' (length=1) | 'Alter_priv' => string 'N' (length=1) | 'Create_tmp_table_priv' => string 'N' (length=1) | 'Lock_tables_priv' => string 'N' (length=1) | 'Create_view_priv' => string 'N' (length=1) | 'Show_view_priv' => string 'N' (length=1) | 'Create_routine_priv' => string 'N' (length=1) | 'Alter_routine_priv' => string 'N' (length=1) | 'Execute_priv' => string 'N' (length=1) | 'Event_priv' => string 'N' (length=1) | 'Trigger_priv' => string 'Y' (length=1) +---------------------------------------------------------------------- */