Active Record Pattern


ارسال در تاریخ ۱۵ بهمن,۱۳۹۵



ابتدا یک دیتابیس با نام active_record_db ایجاد می کنیم و یک جدول با نام users با چهار فیلد id, name, family, email ایجاد می کنیم. می خواهیم از الگوی active record برای دستیابی به این جدول استفاده کنیم.

یک کلاس با نام User ایجاد می کنیم. 

Class User{
	protected $connection = null;

	function __construct(){
		$this->connection = new PDO("mysql:host=localhost;dbname=active_record_db","root","");
	}

	public function load($id){
		$sql = 'SELECT * FROM users WHERE id='.(int)$id;
		$result = $this->connection->query($sql);
		$row = $result->fetch(PDO::FETCH_ASSOC);

		foreach ($row as $column => $value) {
			$this->$column = $value;
		}
	}
}

دستور FETCH_ASSOC  یک آرایه شامل نام فیلد و مقدار آن ها را بر می گرداند. توسط حلقه foreach این آرایه را پیمایش می کنیم و برای هر فیلدی از جدول بصورت پویا یک property ایجاد می کنیم.

یک فایل با نام index.php ایجاد می کنیم.

include_once 'User.php';

$user = new User();
$user->load(3);
echo $user->name;

این کد، از جدول users مقدار فیلد name از سطر با شناسه 3 را بر می گرداند. می توان سایر فیلدها را هم چاپ کرد.


برای ارسال نظر لطفا وارد شوید.