我已经看到其他SO问题处理php 5.3中的错误,并且在位于MAMP / conf / php5.4.4的php.ini文件中启用了php_pdo_mysql。当我查看phpInfo时,在PDO下它只启用了sqlite驱动程序。如果有人对如何进一步解决这个问题有任何建议,将不胜感激。
这是有问题的一行:
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
我提供了一些额外的信息,因为我认为它适用于我迄今为止尝试过的解决方案
try
{
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
die("Failed to connect to the database: " . $ex->getMessage());
}
我尝试用字符串值替换PDO对象的所有变量参数,即。 {$ host}变为'localhost'等,并在catch块中收到错误消息,其中$ ex-> getMessage()为'找不到驱动程序'
答案 0 :(得分:0)
查看此DSN:
$dsn = 'mysql:dbname=testdb;host=127.0.0.1;charset=utf8';
而不是MySQL attr init命令。
答案 1 :(得分:0)
我必须做的是:Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' with pdo
sudo apt-get install php5-mysql
sudo /etc/init.d/apache2 restart
=>问题已经解决