pdo :: getavailedrivers ()는 빈 배열을 반환합니다.
원인 : PHP가 컴파일되지 않았거나 PDO 확장이 활성화되지 않았거나 해당 데이터베이스 드라이버 확장이 설치되지 않았습니다.
해결하다:
php 구성 파일 php.ini 에서 확장자 = pdo.so 또는 extension = php_pdo.dll이 활성화되어 있는지 확인하십시오.
MySQL과 같은 특정 데이터베이스 드라이버의 경우 PDO_MYSQL 확장자를 활성화해야합니다. Extension = PDO_MYSQL.SO 또는 EXTENSION = PHP_PDO_MYSQL.DLL .
웹 서버 또는 PHP-FPM 서비스를 다시 시작하십시오.
PHP -M을 사용하여 활성화 된 모듈을보고 PDO 가 있는지 및 해당 PDO_MYSQL 등을 확인하십시오.
성능 : 확장자가 설치 되더라도 빈 배열은 여전히 반환됩니다.
원인 : PHP 구성 파일 또는 여러 구성 파일 충돌에 오류가있어 확장이 적용되지 않습니다.
해결하다:
php -ini를 사용하여로드 된 php.ini 파일 경로를 확인하십시오.
다른 구성 재정의가 없거나 CLI 및 웹 환경에서 사용 된 구성이 다릅니다.
PHP 오류 로그를 확인하여 확장자가로드 될 때 오류가 있는지 확인하십시오.
php.ini 에 해당 확장자 = 문을 수동으로 추가하십시오.
성능 : PDO는 사용할 수 있지만 특정 드라이버에는 사용할 수 없습니다.
원인 : PHP 버전이 너무 오래되거나 확장 버전이 일치하지 않습니다.
해결하다:
PHP를 권장 버전 (예 : PHP 7.4 이상)으로 업그레이드하십시오.
버전 호환성을 보장하기 위해 확장을 다시 설치하십시오.
Linux에서는 패키지 관리자를 사용하여 Sudo Apt Install PHP-MYSQL 과 같은 해당 PDO 드라이버를 설치할 수 있습니다.
성능 : PDO 지원이 없습니다.
원인 : -enable-PDO 및 해당 데이터베이스 드라이버 매개 변수는 PHP를 컴파일 할 때 추가되지 않았습니다.
해결하다:
PHP를 다시 컴파일하고 매개 변수를 추가하십시오.
<span><span>./configure --enable-pdo --with-pdo-mysql --with-pdo-sqlite
</span></span>
또는 이진 패키지를 사용하여 버전을 설치하십시오.
성능 : CLI에서 정상을 반환하지만 웹 페이지는 빈 배열을 반환합니다.
원인 : CLI와 웹에서 사용하는 PHP 구성 파일은 다릅니다.
해결하다:
phpinfo ()를 사용하여 웹 환경에서 실제로로드 된 구성 파일 및 확장 정보를보십시오.
웹 서버의 PHP 구성 파일에 PDO 및 관련 드라이버가 활성화되어 있는지 확인하십시오.
pdo :: getavailedivers ()가 빈 배열 또는 오류를 반환하면 핵심 아이디어는 다음과 같습니다.
PDO 및 해당 데이터베이스 드라이버 확장이 설치되어 있는지 확인하십시오.
확장이 올바르게로드되었는지 확인하십시오.
PHP 버전 및 환경 구성이 일관된 지 확인하십시오.
서버 또는 PHP 서비스를 다시 시작하여 구성이 적용되도록하십시오.
단서가 있는지 로그 및 phpinfo ()를 확인하십시오.
이러한 조사 단계를 마스터하면 대부분의 문제를 쉽게 해결할 수 있습니다. 이 기사가 PDO 사용 중에 발생하는 문제에 도움이되기를 바랍니다.