我对 PHP 有点陌生,不太理解在文本上使用括号语法的概念。现在我正在尝试连接到我的数据库:
数据库.php:
<?php
class Database {
public $conn;
public function __construct($config)
{
$dsn = "mysql:host={$config['host']};port={$config['port']}; dbname={$config['dbname']}";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
];
try {
$this->conn = new PDO($dsn, $config["username"], $config["password"], $options);
echo 'connected';
} catch (PDOException $e) {
throw new Exception("Database connection failed: {$e->getMessage()}");
}
}
}
这是我不断收到的错误:
显然错误来自第 8 行,我在其中启动了 $dsn 变量。据说 $config 变量有问题,所以我注释掉了所有内容并回显了 $config 的值。当我这样做时,我得到了
"Jack"
的值,这很奇怪,因为 $config 应该是一个数组,而 Jack 应该是键/值对之一的一部分。
这里是config.php:
<?php
return [
'host' => 'localhost',
'port' => '3306',
'dbname' => 'workophia',
'username' => 'Jack',
'password' => '123456'
];
为什么 $config = "Jack" & 的值不是数组?我相信我在这里找到了答案,但我仍然不太明白我正在读的内容我的问题的可能答案。
如果有一点帮助,我们将不胜感激。
差点忘了添加index.php:
<?php
require '../helpers.php';
require basePath('Database.php');
$config = require basePath('config/db.php');
$db = new Database($config["username"]);
require basepath('Router.php');
$router = new Router();
$routes = require basepath('routes.php');
$uri = $_SERVER['REQUEST_URI'];
$method = $_SERVER['REQUEST_METHOD'];
$router->route($uri, $method);
在第 7 行的 index.php 中,我只需从 $config 实例中删除 ['username']。