PDA

View Full Version : سوال: مشکل در oop و pdo



IMANAZADI
یک شنبه 15 شهریور 1394, 08:05 صبح
با سلام

دارم یک کلاس دیتابیس با pdo به صورت oop می نویسم

واسم یه مشکل عجب پیش اومده




class db{


private $pdo;

private $host='localhost';
private $user='root';
private $password='';
private $database='tttt';

private $stmt;
private $err_msg;


public function __construct()
{
$this->open_connection();
}





public function open_connection()
{
try
{
$this->pdo=@new PDO("mysql:host=$this->host;dbname=$this->database;charset=utf8",$this->user,$this->password);



return true;

}

catch(PDOException $e)
{
$this->err_msg="Error : ". $e->getMessage();
return false;
}

}


public function prepare($sql,$param)
{
try
{
$stmt=$this->pdo->prepare($sql);
if($stmt->execute($param))
{
$this->stmt=$stmt;
return true;
}

}
catch(PDOException $e)
{
$this->err_msg="Error : ". $e->getMessage();
return false;
}
}



حالا وقتی از کلاس نمونه میسازیم



$rr=new db;




$bb=$rr->prepare("UPDATE MENU set label=?,link=?,sort=? where id>?",array("test","linktest","2",5));






echo $bb->fetchAll();






چرا تو متغییر bb به متدهای stmt مثل fetchall و بقیه دسترسی داریم ؟؟؟؟
مگر نباید متغییر bb ما فقط true یا false باشه ؟؟؟؟

us1234
یک شنبه 15 شهریور 1394, 08:34 صبح
کلاس باید از کلاس PDO ارث گرفته شده باشد :


class db extends PDO

برای new instant حتما () را به کارببرید :


$rr=new db();

IMANAZADI
یک شنبه 15 شهریور 1394, 08:44 صبح
دوست عزیزممنون
ولی بنظر شما الان مشکل حل شد ؟؟؟؟