Я видел другие вопросы SO, касающиеся ошибки в php 5.3, и включил php_pdo_mysql в файле php.ini, расположенном в MAMP / conf / php5.4.4. Когда я смотрю на 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 (), которое «не могло найти драйвер»,
Проверьте это DSN:
$dsn = 'mysql:dbname=testdb;host=127.0.0.1; charset=utf8 ';
Вместо команды MySQL attr init.
я должен был сделать это: Неопределенная константа класса 'MYSQL_ATTR_INIT_COMMAND' с pdo
sudo apt-get install php5-mysql sudo /etc/init.d/apache2 restart
=> проблемы решены