본문 바로가기
MySql

MySQL 정의되지 않은 클래스 상수에 정의되지 않은 클래스 상수 'MYSQL_ATTR_INIT_COMMAND'(PHP 5.5.3)

by 베이스 공부 2020. 12. 7.
반응형

원격 데이터베이스에 연결하는 구성 파일이 있지만 수정 방법을 모르는 오류가 계속 표시됩니다. 이전 버전에서는 버그를 의미했지만 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'" 오류가 계속 나타납니다. 'MYSQL_ATTR_INIT_COMMAND'대신 1002를 사용하려고했지만 오류가 발생합니다. "구문 오류, 예기치 않은 '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

 

참조 페이지 https://stackoverflow.com/questions/23059697

 

 

반응형

댓글