我是MAC OS和Fuel PHP的新手,我尝试学习FuelPHP,它引导我学习一些教程,你可以在这里找到链接: link
正如教程所示,通过命令行在FuelPHP中使用迁移:
oil r migrate
并且它显示了某种奇怪的错误,当我谷歌(以及教程也是如此)时,有人建议在fuel / app / config / development / db.php文件中将'localhost'更改为'127.0.0.1',错误应该消失。
然后它显示另一个错误:
ERROR - invalid data source name in COREPATH/classes/database/pdo/connection.php on line 87
虽然我已通过浏览器检查了与数据库的连接,但是连接到数据库的所有用户名和密码也都正确。我还是不知道是什么问题。请帮助和抱歉我的英语,这不是我的母语。
答案 0 :(得分:1)
我认为您的问题不是数据源名称,而是环境。
您需要正确设置环境,此页面对此进行了解释:http://fuelphp.com/docs/general/environments.html
这就是我在debian中所做的事情:
env FUEL_ENV=production oil refine migrate:up
我在Windows上的开发计算机上做了什么:
set FUEL_ENV=development // One time only
oil refine migrate:up
跳它会帮助你。
答案 1 :(得分:0)
转到您的Fuel / app / bootstrap.php并查看第27 - 30行,它看起来像是这样的
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::DEVELOPMENT);
在你的情况下,如果你的Fuel :: DEVELOPMENT那么你应该(可能是FUEL::PRODUCTION
或FUEL::TESTING
)
现在根据环境确定在文件中检查数据库连接的配置。 fuel / app / config / development / db.php
在该文件中检查数据库连接,它将有点像这样,并验证它们是否正确。
return array(
'default' => array(
'connection' => array(
'dsn' => 'mysql:host=localhost;dbname=yourdatabasename',
'username' => 'yourusername',
'password' => 'yourpassword',
),
),
);
我认为在您的情况下,环境集与使用的配置之间存在不匹配。
希望这有帮助