0

我已经看到处理 php 5.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() 为 'could not find driver'

4

2 回答 2

0

查看此 DSN:

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

而不是 MySQL attr init 命令。

于 2013-07-04T18:58:00.993 回答
0

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

sudo apt-get install php5-mysql

sudo /etc/init.d/apache2 restart

=> 问题已解决

于 2015-05-24T14:49:42.990 回答