PDA

View Full Version : سوال: مشکل با درج اطلاعات در پایگاه داده mysql به وسیله PDO



persianuser2
پنج شنبه 12 دی 1392, 17:01 عصر
سلام دوستان عزیز
من تازه 2 3 روز هست که کار با PDO رو شروع کردم و هنوز این کلاس آشنایی ندارم.
من در یک پروژه نمرینی با استفاده از کلاس PDO سعی کردم عملیات های مربوط به بانک اطلاعاتی رو انجام بدم.
طبق روال همیشگی خودم دستورات SQL م رو با استفاده از کلاس مدیریت میکردم یعنی یک کلاس میسازم اعمال مربوط به اتصال در اون درج میکنم و کلاس های زیرین رو اختصاص می دم به عملیات ها و جداول. با دستورات MYSQL ساده مشکلی ندارم اما با استفاده از کلاس PDO دچار مشکل شدم.
اتصال به بانک به خوبی انجام میشه و خطایی تولید نمی کنه اما زمانی که قصد دارم اطلاعات رو درج کنم با خطای زیر مواجه میشم.


Call to a member function prepare() on a non-object in ...

توی سایت های مختلف هم گشتم اما واقعیت چون زبان انگلیسی من زیان خوب نیست چندان نتیجه ای نگرفتم. به نظر شما باید چه کار کنم کدی ازش خطا گرفته این هست:



class cls_connection{
public function connect(){
// دستورات
}
}

class cls_child extends cls_connection{
public function insertrecord($jobtitle){
$db = parent::connect();
$sqlcode = "INSERT INTO `jobs`(`jobtitle`, `numrecords`) VALUES (:title, :numrecord)";
if($db != "error!"){
$sth = $dbh->prepare($sqlcode);
$sth->execute(
array(
":title"=>$jobtitle,
":numrecord"=>'0'
)
);
}else{
return "error";
}
}
}

از خط مروبط به Prepare خطا میگیره!!!

metal gear solid 4
جمعه 13 دی 1392, 00:16 صبح
مطمئناً اگه ایرادی هم باشه از کد SQL شما نیست. یعنی اگر هم باشه خطای فعلی مربوط به SQL نیست. $dbh->prepare() اشتباهه. در صورتی که متغیر بانک اطلاعاتی $db تعریف کردید. خط 12

soroush.r70
جمعه 13 دی 1392, 18:56 عصر
یه کلاس pdo و طریقه استفاده ازش تو این لینک (http://barnamenevis.org/showthread.php?434514-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%DA%A9%D9%84%D8%A7%D8%B3-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3) پست شماره 10 گذاشتم می تونی ازش استفاده کنی