Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 022 323 раза!

Форум

Добро пожаловать, Гость!

Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

Обсуждение проблем в работе программного комплекса
molottt
Сообщения: 17
C нами: 4 года 9 мес

Непрочитанное сообщение molottt » 04 ноя 2012, 17:35

вообщем что-то с модулем PDO. код для теста:

<?php
define('HOSTNAME', 'localhost');
define('DATABASE', 'base');
define('USERNAME', 'login');
define('PASSWORD', 'pass');

try {
$db = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); (на этой строке вылет! ошибка ниже)
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
exit($e->getMessage());
}
?>

текст ошибки:
Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in E:\openserver\domains\test\test.php on line 7

в php.ini модуль подключен
extension=php_pdo_mysql.dll

Аватара пользователя
Максим
Сообщения: 4878
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 04 ноя 2012, 18:05

Проверил ваш код на последней версии Open Server со всеми модулями PHP - нигде ошибки не возникает. Так что ищите проблему у себя.

molottt
Сообщения: 17
C нами: 4 года 9 мес

Непрочитанное сообщение molottt » 04 ноя 2012, 19:17

ой. забыл сказать. в cli-режиме. в браузере то все нормально.

http://imglink.ru/show-image.php?id=549a3c955888cb97b2eb1a4ef8b14906

Добавлено спустя 12 минут 38 секунд:
а если из строки:
$db = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

убрать константу, вот так:
$db = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD);

то ошибка вот такая:
could not find driver

я грешным делом подумал что для cli другой ini-файл конфига. но вроде нет.

Аватара пользователя
Максим
Сообщения: 4878
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 04 ноя 2012, 19:59

Да вы похоже даже не указываете путь до php.ini при вызове php из командной строки. Так же учитывайте что сервер должен быть запущен.

molottt
Сообщения: 17
C нами: 4 года 9 мес

Непрочитанное сообщение molottt » 04 ноя 2012, 20:33

да вроде все указываю. это нетбинс.
http://imglink.ru/show-image.php?id=6690fda834b68dd9bb6173de336fa35b

я на нетбинсе работаю 3 года. на твоем опенсервере работаю почти год. проблем не было.

Аватара пользователя
Максим
Сообщения: 4878
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 04 ноя 2012, 21:20

Судя по вашему скриншоту, вы ничего не указываете. Я вам уже сказал, нужно указывать путь до php.ini, а ошибка возникает потому что расширение php_pdo_mysql.dll не подключено из-за отсутствия php.ini


Вернуться в «Ошибки Open Server»

Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и 2 гостя