PDO :: getAvailableDrivers()は空の配列を返します。
原因: PHPがコンパイルされていないか、PDO拡張機能が有効になっていないか、対応するデータベースドライバー拡張機能がインストールされていません。
解決する:
拡張子= pdo.soまたは拡張子= php_pdo.dllがphp構成ファイルphp.iniで有効になっていることを確認します。
mysqlなどの特定のデータベースドライバーの場合、 pdo_mysql拡張子を有効にする必要があります。
WebサーバーまたはPHP-FPMサービスを再起動します。
PHP -Mを使用して有効なモジュールを表示し、 PDOと対応するPDO_MYSQLなどがあるかどうかを確認します。
パフォーマンス:拡張機能がインストールされていても、空の配列は引き続き返されます。
原因: PHP構成ファイルまたは複数の構成ファイルの競合にエラーが発生し、拡張機能が有効になりません。
解決する:
php - iniを使用して、ロードされたphp.iniファイルパスを確認します。
他の構成オーバーライドがないこと、またはCLIおよびWeb環境で使用される構成が異なることを確認します。
PHPエラーログを確認して、拡張機能がロードされたときにエラーがあるかどうかを確認します。
対応する拡張子=ステートメントを手動で追加します。
パフォーマンス: PDOは利用可能ですが、特定のドライバーでは利用できません。
原因: PHPバージョンが古すぎるか、拡張バージョンが一致しません。
解決する:
PHPを推奨バージョン(PHP 7.4以降など)にアップグレードします。
拡張機能を再インストールして、バージョンの互換性を確保します。
Linuxでは、パッケージマネージャーを使用して、 SUDO APTインストールPHP-MYSQLなど、対応するPDOドライバーをインストールできます。
パフォーマンス: PDOサポートはありません。
原因: -Enable-PDOおよび対応するデータベースドライバーパラメーターは、PHPをコンパイルするときに追加されませんでした。
解決する:
PHPを再コンパイルし、パラメーターを追加します。たとえば
<span><span>./configure --enable-pdo --with-pdo-mysql --with-pdo-sqlite
</span></span>
または、バイナリパッケージを使用してバージョンをインストールします。
パフォーマンス: CLIの下で通常の返品ですが、Webページは空の配列を返します。
原因: CLIとWebで使用されるPHP構成ファイルは異なります。
解決する:
phpinfo()を使用して、Web環境で実際にロードされた構成ファイルと拡張情報を表示します。
WebサーバーのPHP構成ファイルにPDOがあり、関連するドライバーが有効になっていることを確認します。
PDO :: getAvailableDrivers()が空の配列またはエラーを返す場合、コアのアイデアは次のとおりです。
PDOおよび対応するデータベースドライバー拡張機能がインストールされているかどうかを確認します。
拡張機能が正しくロードされていることを確認してください。
PHPバージョンと環境構成が一貫しているかどうかを確認してください。
サーバーまたはPHPサービスを再起動して、構成が有効になるようにします。
手がかりについては、ログとphpinfo()を確認してください。
これらの調査手順を習得すると、ほとんどの問題を簡単に解決できます。この記事がPDOの使用中に遭遇する問題に役立つことを願っています!