💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ پیام نصری
مشکل در کوئری 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();
}
بهترین پاسخ
محسن موحد ۲۱ مهر ۱۴۰۳، ۰۱:۰۱