روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ Mahdi
ارور در قسمت execute
جامعه پی اچ پی ایجاد شده در ۰۳ شهریور ۱۴۰۱

سلام استاد

class base_model {
    protected $db;
    protected $tableName;
    protected $primaryKay = "id";
    public function __construct()
    {
        try {
            $this -> db = new PDO("mysql:host:localhost;dbname=7todo_2","root","");
        } catch (Throwable $th) {
            die("12".$th->getMessage());
        }
    }
    public function delete($id)
    {
        $delete = "DELETE FROM {$this->tableName} WHERE {$this->primaryKay} = :id ";
        $stmt = $this->db->prepare($delete);
        $stmt ->execute([":id"=>$id]);
        return $stmt ->rowCount();
    }
    public function get($id)
    {
        $delete = "SELECT * FROM {$this->tableName} WHERE {$this->primaryKay} = :id ";
        $stmt = $this->db->prepare($delete);
        $stmt ->execute([":id"=>$id]);
        return $stmt ->fetch(PDO::FETCH_OBJ);
    }
}

ارور هنگام ران کد پایین اتفاق میفتد

include_once "base_model.php";
class folders extends base_model 
{
    protected $tableName = "folders";
}
$folder=new folders;
$m=$folder->get(3);
var_dump($m);

و اشاره به این خط کرده

$stmt ->execute([":id"=>$id]);

با این ارور

Fatal error: Uncaught PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected in C:\\xampp\\htdocs\\13.oop\\6.oop1.Inheritance\\base_model.php:33

اسم دیتابیس هم درست وارد کردم و دیتابیسدر پایگاه داده وجود دارد.

سلام دوست عزیز

توی جایی که دارید با pdo کانکشن ایجاد میکنید باید بنویسید host=localhost شما نوشتید host:localhost

موفق باشید ?

بهترین پاسخ
محمد گازری ۰۴ شهریور ۱۴۰۱، ۰۴:۵۳

مچکر استاد

Mahdi ۰۴ شهریور ۱۴۰۱، ۰۵:۱۳

موفق باشید ?

محمد گازری ۰۴ شهریور ۱۴۰۱، ۰۵:۱۵