我刚刚安装了Debian Lenny与Apache, MySQL和PHP,我收到一个PDOException无法找到驱动程序。

这是它所引用的特定代码行:

$dbh = new PDO('mysql:host=')。DB_HOST。”;dbname = '。Db_name, db_user, db_pass)

DB_HOST、DB_NAME、DB_USER和DB_PASS是我已经定义的常量。它在生产服务器(以及我之前的Ubuntu server设置)上运行良好。

这与我的PHP安装有关吗?

在网上搜索也没有帮助,我得到的都是专家交流和例子,但没有解决方案。


当前回答

同样的问题,因为我忘记进入我的虚拟机。如果我像这样进入我的本地目录:

cd /www/homestead/my_project
php artisan migrate

这个错误就会出现。但它在我的虚拟机上运行

cd ~/homestead
vagrant ssh   
cd /www/homestead/my_project
php artisan migrate

其他回答

有同样的问题,只是认为,网站是在MAMP的php下运行,但当你调用命令时,它运行mac的(如果没有bash路径修改)。当MAC没有这些扩展时,你会有问题。

运行PHP -i查找已加载的扩展,并安装那些您错过的扩展。 或者运行'/Applications/MAMP/bin/php/php5.3.6/bin/php artisan {your command}'来使用MAMP's

更新:新版本应该使用php-sqlite3包而不是php5-sqlite。所以,如果你使用的是最新的ubuntu版本,请使用这个:

sudo apt-get install sqlite php-sqlite3

问题的原始答案在这里:

sudo apt-get install sqlite php5-sqlite
sudo /etc/init.d/apache2 restart

如果你的phpinfo()没有显示pdo_sqlite行(在我的情况下,在我的Ubuntu服务器上),你只需要运行上面的行,然后你就可以开始了。

这个答案是mysql数据库和谁正在使用Xammp

我尝试了很多来自StackOverflow的代码,但主要问题是,我们必须检查这两个文件xammp php.ini文件和php文件夹php.ini文件,并取消注释这个扩展名“extension=pdo_mysql”在这两个。ini注释一个看起来像这样

;extension=pdo_mysql

在重新启动xammp并在终端中运行这些命令之后,只需从开头删除“;”分号

php artisan migrate:fresh --seed

这个命令将刷新你的迁移,也做了播种

关闭上次运行服务命令并再次运行它

php artisan serve

现在它为你工作了。

如果有任何错误,那么任何高级都可以更新这个答案

如果你读了上面所有的答案,它仍然不工作…

确保PHP PDO连接字符串正常。不像我的:

$dbh = new PDO(' ' mysql:host='。DB_HOST。”;dbname = '。Db_name, db_user, db_pass)

错误消息中没有没有找到驱动程序的信息。

在重新安装所有可能的PDO和MySQL库后,我发现有“at start of my connection string”。

我的解决方案是在安装php时,没有正确配置环境变量和php.ini文件。做这两个修正未注释的de line extension = pdo_mysql。所以工作