Intereting Posts
PHP htmlentities () не работает должным образом Как выбрать класс = "selected" в зависимости от того, какая текущая страница / URL-адрес Команды не синхронизированы; вы не можете запустить эту команду сейчас, когда я запускаю цикл В PHP, как я могу добавить элемент объекта в массив? Установка расширения PEAR HTTP_Request2 с композитором Поле первичного ключа не получает подтверждения для уникальности в cakephp Помещение электронной почты в папку «отправлено» после функции почты PHP Почта переходит к спаму вместо входящих и некоторых ошибок в заголовке части почты с помощью PHP Пример кода AJAX Codeigniter Переопределение констант класса и свойств Динамически связывать параметры mysqli_stmt, а затем связывать результат (PHP) Как отправить флажки со всех страниц с помощью jQuery DataTables UTF-8 Safe Equivelant of ord или charCodeAt () в PHP htmlspecialchars или mysql_real_escape_string? почему ob_start () должен опережать session_start () для работы в PHP?

Неопределенная константа класса 'MYSQL_ATTR_INIT_COMMAND' в константе неопределенного класса (PHP 5.5.3)

У меня есть файл конфигурации, который подключается к удаленной базе данных, однако я продолжаю получать сообщение об ошибке, которое я не знаю, как исправить. В более ранних версиях он должен был быть ошибкой, но я предположил, что он был бы исправлен на 5.5.3.

<?php error_reporting(E_ALL); ini_set('display_errors', 'on'); $host = "localhost"; $dbname = "registration"; $username = "databaseEditor"; $password = "yolo10"; // 1002 = MYSQL_ATTR_INIT_COMMAND $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); try { $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username$ } catch(PDOException $ex) { die("Failed to connect to the database: " . $ex->getMessage()); } $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); header('Content-Type: text/html; charset=utf-8'); echo "File works"; ?> 

Я продолжаю получать ошибку "Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'" . Я попытался использовать 1002 вместо «MYSQL_ATTR_INIT_COMMAND», но потом я получил ошибку "syntax error, unexpected '1002' (T_LNUMBER)" и я также установил новое расширение php-mysql.

Попробуйте изменить php.ini:

На сервере Windows вы можете добавить следующие строки в php.ini

  extension=php_pdo.dll extension=php_pdo_mysql.dll 

На сервере Linux вы можете скомпилировать php со следующей опцией –with-pdo-mysql

В php.ini добавьте следующие строки

  extension=pdo.so extension=pdo_mysql.so 

Константа PDO::MYSQL_ATTR_INIT_COMMAND определяется драйвером MySQL расширения PDO. Вы, скорее всего, тоже забыли установить.

После установки соответствующих расширений вы можете забыть о PDO::MYSQL_ATTR_INIT_COMMAND . Правильный способ установки кодировки соединения – это то, что вы уже сделали – параметр DSN в конструкторе:

 $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username$ ^^^^^^^^^^^^ 

И последнее, но не менее важное: ваш код, похоже, содержит множество синтаксических ошибок. Вам необходимо включить полную отчетность об ошибках в файл php.ini, поскольку эти строки:

 error_reporting(E_ALL); ini_set('display_errors', 'on'); 

… не будет выполняться, если скрипт даже не может работать.

На Ubuntu 14.04

Установить пакет php5-mysql

sudo apt-get install php5-mysql

Если вышеуказанное уже установлено

sudo php5enmod pdo

sudo php5enmod pdo_mysql

Перезапустить веб-сервер