第 15 集的问题 laracasts.com PHP 从业者

这一集是关于隐藏密码的。

我收到刷新本地主机的错误 - “无法找到驱动程序”如视频所示制作 config.php 后。

连接.php

<?php


class Connection

{

    public static function make($config)

    {

        try {

/*            return new PDO('mysql:host=localhost:3306;dbname=schema_test', 'name', 'password');*/

            return new PDO(

                $config['connection'].';dbname='.$config['name'],

                $config['username'],

                $config['password'],

                $config['options']

            );

        } catch (PDOException $e) {

            die($e->getMessage());

        }

    }

}

它适用于注释掉的版本,但在制作 config.php 并从那里获取信息后,我收到了错误。

配置文件

<?php


return [

    'database' => [

        'name' => 'schema_test',

        'username' => 'name',

        'password' => 'password',

        'connection' => 'localhost:3306',

        'options' => [],

    ]

];

引导程序.php

<?php


require 'database/Connection.php';


require 'database/QueryBuilder.php';


$config = require 'config.php';


return new QueryBuilder(

    Connection::make($config['database'])

);

另外,我在控制台中没有得到有关错误的其他信息。


我已经尝试过对其他人有效的解决方案,例如: sudo apt-get install php-mysql


我尝试重新安装一些与 php 相关的东西,但这也没有改变任何东西。


<?php


require 'database/Connection.php';


require 'database/QueryBuilder.php';


$config = require 'config.php';


print_r($config);


return new QueryBuilder(

    Connection::make($config['database'])

);

输出:


Array ( [数据库] => Array ( [名称] => schema_test [用户名] => 用户 [密码] => 密码 [连接] => localhost:3306 [选项] => Array ( ) ) ) SQLSTATE[HY000] [1045] 用户“user”@“localhost”的访问被拒绝(使用密码:YES)


手掌心
浏览 134回答 2
2回答

犯罪嫌疑人X

您没有声明驱动程序,因此您得到'could not find driver'。此外,您还缺少命名 host= 参数。要纠正此错误,请像这样更改 PDO 实例化:return new PDO(&nbsp; &nbsp; 'mysql:host='.$config['connection'].';dbname='.$config['name'],&nbsp; &nbsp; $config['username'],&nbsp; &nbsp; $config['password'],&nbsp; &nbsp; $config['options']&nbsp;);您的$config数组没有问题,并且也被正确包含。</span>

动漫人物

在 config.php 中,直接设置数组:<?php$config = [&nbsp; &nbsp; 'database' => [&nbsp; &nbsp; &nbsp; &nbsp; 'name' => 'schema_test',&nbsp; &nbsp; &nbsp; &nbsp; 'username' => 'name',&nbsp; &nbsp; &nbsp; &nbsp; 'password' => 'password',&nbsp; &nbsp; &nbsp; &nbsp; 'connection' => 'mysql:host=localhost:3306',&nbsp; &nbsp; &nbsp; &nbsp; 'options' => [],&nbsp; &nbsp; ]];在您的 bootstrap.php 中,请要求您的 config.php 文件如下:require 'config.php';并且不要忘记使用 $config['database']['name']...
打开App,查看更多内容
随时随地看视频慕课网APP