۲ ادریس ابراهیم‌زاده
خطا در تست متد connect
جامعه پی اچ پی ایجاد شده در ۲۸ فروردین ۱۴۰۲

سلام

bac5-SharedScreenshot.jpg

همه‌ش اینجا Failed می‌شه همه جا رو بررسی کردم پاس نمی‌شه مشکلش چیه؟

سلام ادریس عزیز

در متد get connection باید آبجکتی که از کلاس pdo در متد connct ساختید و به پراپرتی connection دادید رو برگردونید.

ضمنا در بلاک catch در زمان تست‌ها شما نباید echo انجام بدید چون برنامه ادامه داده میشه و باعث ارور میشه؛پس باید اکسپشن ترو کنید.

    public function connect()
    {
        $dsn = $this->generateDsn($this->config);
        //var_dump($dsn);
        try {
            $this->connection = new PDO(...$dsn);
            // set the PDO error mode to exception
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            //echo "Connected successfully";
        } catch (PDOException $e) {
            throw new Exeption($e->getMessage());
        }
    }
    public function getConnection()
    {
        return $this->connection;
    }

در متد ایجاد dsn هم ایندکس‌ها رو اشتباه گرفتید؛مثلا db-user رو زدید db_user که اصلاحش به شکل زیر هست:

    private function generateDsn(array $config)
    {
        $dsn = "{$config['driver']}:host={$config['host']};dbname={$config['database']}";
        return [$dsn, $config['db-user'], $config['db-password']];
    }
بهترین پاسخ
احمدرضا فاطمی کیا ۲۸ فروردین ۱۴۰۲، ۱۶:۵۱

حل شد، ممنونم از پاسخگوییتون?

ادریس ابراهیم‌زاده ۲۸ فروردین ۱۴۰۲، ۱۸:۴۰