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

时间:2013-07-04 18:07:38

标签: php pdo mamp

我已经看到其他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()为'找不到驱动程序'

2 个答案:

答案 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

=>问题已经解决