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 باشه ؟؟؟؟
دارم یک کلاس دیتابیس با 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 باشه ؟؟؟؟