我在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命令。