未定义类常量';mysql_attr_init_command';在MAMP中使用php 5.4.4


undefined class constant 'mysql_attr_init_command' in MAMP using php 5.4.4

我在php5.3中看到了其他SO问题,并在位于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()为"找不到驱动程序"

我必须做的是:未定义的类常量';MYSQL_ATTR_INIT_COMMAND';带pdo

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

=>问题已解决

查看此DSN:

$dsn = 'mysql:dbname=testdb;host=127.0.0.1;charset=utf8';

而不是MySQL attr init命令。