اخطار No such host is known در هنگام استفاده از PDO

پرسیده شده
فعالیت 963 روز پیش
دیده شده 776 بار
0

سلام وقت بخیر، من تمامی مراحلی که استاد در این جلسه انجام دادند رو رفتم، اما موقع اتصال به دیتابیس با خطای زیر مواجه میشم. مشکل از کجاست؟؟؟؟

//config.php:
$database_config = (object)[
    "host" => "localhost",
    "user" => "root",
    "pass" => "",
    "db" => "7todo"
];

//init.php:
$dsn = "mysql:dbname={$database_config -> db};host= {$database_config -> host} ";

try {
    $pdo = new PDO($dsn, $database_config -> user, $database_config -> pass);

} catch (PDOException $e) {
    echo "connection failed: " . $e -> getMessage();
    die();
}
echo "connect ok";

//output: 
connection failed: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. 
فایل پیوست

abdolnaser20
abdolnaser20

11 مرداد 00

1
حذف شده

سلام و عرض ادب 

 

در متغیر dsn بعد از عبارت host= و بعد از قرار دادن مقدار 

{$database_config -> host}

یک فاصله قرار دادید و ظاهرا چون این فاصله ها رو هم به عنوان آدرس هاست مد نظر میگیره نمی‌تونه هاست رو پیدا کنه و به ارور می‌خورید.فاصله رو بردارید مشکل حل میشه

فایل پیوست

محمدرضا حسینی

توسط

محمدرضا حسینی

14 شهریور 00

حذف شده
سلام جناب حسینی عزیز. بله، گویا space گذاشته در اسم host تأثیرگذاره. ممنون از شما بابت کمکی که کردین. مسئله حل شد.
abdolnaser20

29 شهریور 00

0
حذف شده

درود

باید بعد از mysql: هاست رو بیارید، مثل کد زیر

$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
فایل پیوست

امیر صالحی

توسط

امیر صالحی

11 مرداد 00

حذف شده
تغییر دادم اما بازم درست نشد... آیا مشکل در عدم شناسایی host نیست؟؟؟
abdolnaser20

11 مرداد 00

حذف شده
این کد رو کامل جایگزنی کردید؟
امیر صالحی

12 مرداد 00

حذف شده
اگه دقیقا همین کدی که شما فرستادین رو وارد کنم با اخطار زیر مواجه میشم: Connection failed: SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES) اما وقتی بجای username$ از root استفاده کنم و password رو هم خالی بزارم بهم پیغام موفقیت آمیز بودن اتصال به دیتابیس رو میده، اما یه مشکل دیگه پیش میاد!!!! اینکه اگه اسم دیتابیس یا root رو اشتباه وارد کنم(اشتباه تایپی) بهم اخطار نمیده و باز هم پیغام موفقیت آمیز بودن اتصال رو نشون میده!!!
abdolnaser20

13 مرداد 00