• 1399/05/05

ابهام در گوئری فایل model :

سلام وقت بخیر - ببخشید در دوره php mvc در قسمت 14 (تایتی) که کدهای فایل model.php رو تکمیل میکردین من اصلا متوجه نشدم که روال کار به چه صورت هست.شما از سه متد exec - query - prepare استفاده کردین و گفتیم که اینهارو قبلا توی دوره php پیشرفته توضیح دادم خوب ما که دوره php پیشرفته رو ندیدیم نمیدونیم.

لطفا اگه ممکنه فقط کد زیر رو با جزئیات توضیح بدید ممنون ممنون میشم

protected function query($query , $values = null){
    try {
      if ($values == null) {
        return $this->connection->query($query);
      }
      else {
        $stmt = $this->connection->prepare($query);
        $stmt->execute($values);
        return $stmt;
      }

    }
    catch (PDOException $e) {
      echo "There is some problem in connection:" . $e->getMessage();
    }

  }

 

در قسمت if را از متد query بجای prepare استفاده کردین؟ تا جایی که من میدونم متدکوئری مشکل داره و prepare کامل تر هست

در قسمت else چرا $value رو execute کردین؟

لطفا کامل توضیح بدین اگه ممکنه دوتا نکته بالارو با جزئیات بیشتری توضیح بدید خیلی ممنون از لطفتون

  • 1399/05/05
  • ساعت 01:12

با سلان خدمت شما همراه گرامی

 

ببینید من وقتی میگم در دوره پیشرفته گفتیم یعنی این موارد پیشنیاز دوره هست نه اینکه من چیز عجیبی در دوره‌پیشرفته گفتم نه 

این مورد در مباحث pdo بخش prepare هست و اصلا ربطی به دوره خاصی نداره هر دوره ای استاندارد گفته باشن این موردو توضیح دادن

 

خب‌بریم‌ سراغ توضیح

 

ببینید من هر کوئری که میزنیم احتمال داره همراهش value داشته باشیم یا نداشته باشیم

مثلا select * from users

ما اینجا متغییری برای prepare کردن نداریم پس مستقیم query رو صدا میزنیم و تمام

اما بعضی از کوئری ها احتیاج به prepare کردن دارن مثلا select * from users where id = ?

اینجا باید حتما prepare بشه و بعد execute

 

شرطی که گذاشتیم دقیقا همین موردو چک میکنه


  • 1399/05/05
  • ساعت 01:23

احسنت به شما


  • 1399/05/05
  • ساعت 01:24

متوجه شدید کامل؟ 

 

بازم جایی ابهام داشتید حتما بفرمایید چون این موضوعاتو باید فول باشید و بعد پروژه اصلی رو شروع کنید هیچ ابهامی نذارید بمونه


  • 1399/05/05
  • ساعت 14:18

ممنونم - فقط نمیدونم چرا توی قسمت else اومدین $value رو execute کردین - فکرمیکنم باید stmt$ رو execute میکردین نتونستم دلیلشو پیدا کنم ممنون میشم راهنماییم کنید


  • 1399/05/05
  • ساعت 14:19

https://www.php.net/manual/en/pdostatement.execute.php

 

آرگمان ورودی متد رو ملاحظه بفرمایید

نوشته پارامتر ها

 

پارامتر ها همون value ها هستن


  • 1399/05/05
  • ساعت 14:22

احسنت به شما


logo-samandehi