🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ دکتر شهین مستوفی
مشکل در کوئری PDO
استاد ماندیس بحرینی حل شده توسط استاد ماندیس بحرینی

سلام

من موقع کوئری زدن به دیتابیس از طریق PDO به ارور زیر برخورد میکنم.

 uncaught pdoexception: sqlstate[3d000]: invalid catalog name no database selected

سلام،

داخل dsn نام دیتابیس رو مشخص کنید.

استاد ماندیس بحرینی ۲۰ مهر ۱۴۰۳، ۱۳:۵۱
$dbconf = (object) [
    'host' => 'localhost',
    'user' => 'root',
    'pass' => '',
    'database'  => 'tododb'
  ];

اگر منظورتون کانفیگی هستش که برای اتصال به پایگاه داده نوشتم، هیچ مشکلی نداره.

دکتر شهین مستوفی ۲۰ مهر ۱۴۰۳، ۱۷:۳۸

از $dbconf برای ساخت dsn چطور استفاده کردید؟

به این شکل میتونید بنویسید: (ضمناً دیتابیس رو از قبل در mysql ساخته باشید. همچنین دقت کنید داخل سینگل کوت متغیریو قرار نداده باشید چون پارز نمیشه. میتونید خودdsn رو echo بگیرید و خروجیرو ببینید.)

$dbconf = (object) [
    'host' => 'localhost',
    'user' => 'root',
    'pass' => '',
    'database' => 'tododb'
];
try {
    $dsn = "mysql:host={$dbconf->host};dbname={$dbconf->database};charset=charset=utf8mb4";
    $pdo = new PDO($dsn, $dbconf->user, $dbconf->pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "اتصال با موفقیت برقرار شد!";
} catch (PDOException $e) {
    echo "خطا در اتصال: " . $e->getMessage();
}
بهترین پاسخ
استاد ماندیس بحرینی ۲۱ مهر ۱۴۰۳، ۰۱:۰۱