PDA

View Full Version : سوال: اتصال به دیتابیس از قبل



Tarragon
پنج شنبه 28 دی 1391, 11:28 صبح
سلام
من یه کلاس واسه اتصال به دیتابیس نوشتم حالا می می خوام توی یه کلاس دیگه ( واسه ورود و خروج ) به دیتابیس متصل بشم حالا چطوری باید از کلاس دیتابیس تو کلاس دوم بدون استفاده از کلاس والد استفاده کنم؟
پیشاپیش از جوابتون ممنونم.

darkface
پنج شنبه 28 دی 1391, 11:49 صبح
سلام
من یه کلاس واسه اتصال به دیتابیس نوشتم حالا می می خوام توی یه کلاس دیگه ( واسه ورود و خروج ) به دیتابیس متصل بشم حالا چطوری باید از کلاس دیتابیس تو کلاس دوم بدون استفاده از کلاس والد استفاده کنم؟
پیشاپیش از جوابتون ممنونم.
شما چند تا راه داری.
یک اینکه توی یه namespace قرار بدی دو تاشو.حالا به راحتی میتونی از اون استفاده کنی.
دو اینکه یه شی از کلاس بالای تعریف کنی و...
سه اینکه پاپلیک تعریف کنی کلاستو

Tarragon
پنج شنبه 28 دی 1391, 14:22 عصر
ببخشید « ها ؟» :لبخند:
دور از شوخی تقریبا هیچی نفهمیدم :دی

MostafaEs3
پنج شنبه 28 دی 1391, 14:33 عصر
یک new از کلاس دیتابیس بگیر - مثلا این کلاسی که من زدم اینجا : http://barnamenevis.org/showthread.php?377968-%DA%A9%D9%84%D8%A7%D8%B3-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-Mysql-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87

خب بعد اگه میخوای توی خود کلاس با تمام زیرکلاس هایی که با extends بهش وصلن استفاده بشه یک متغیر (ثابت) بصورت private تعریف کن و اون new object رو توی اون بذار - بعد هروقت خواستی فراخوانی کن -
اگه هم که میخوای توی تمام کلاسها بشه ازش استفاده کرد بازهم همینکارو کن ولی ثابت رو بصورت public تعریف کن

مثال ::


class Application {
public $database; /* استفاده خارج از کلاس */
private $database /* استفاده فقط درون کلاس */


function __construct($database){
$this->database = $database;
}
}


مثلا در اینجا اینجوری میشه دیتابیس رو رجیستر کرد ::


$App = new Application(new Database('localhost', 'root', '', 'db'));

و برای فراخوانی دیتابیس از خارج مثلا با کلاسی که من گذاشتم ::


$Rows = $App->database->Select('posts')->Fetch()->Rows;