解決するかはわかりませんが,2点思いついたので下記の内容を試してみてください。
(もうすでに試したものだったらすみません。
また,手元にpcがないため,検証作業をできていません…そもそもミスってたら申し訳ないです…)
1.php.iniのextension の確認
extension = mysql
extension = pdo_mysql
上記のコメントアウトが外れているかを確認してください。
2.pdo()の引数の設定方法の変更
Defineでもいける気がするのですが,
念のためこちらでも同様の問題が発生するか試してみてください。
こちらでも問題がある場合かつ,PHPMyAdminがローカルに構築されたものである場合は,ユーザー名か,パスワードに問題がある可能性が高いと思います。
(Phpmyadminを長い間使ってないのでよく覚えてないのですが,Phpmyadminにログインするために使用するユーザーと,dbにログインするために使うユーザーは別物だったような気もします…)
<?php
$servername = "localhost";
$username = "ユーザー名";
$password = "パスワード";
$dbname = "データベース名";
try {
$dsn = "mysql:host=$servername;dbname=$dbname";
$conn = new PDO($dsn, $username, $password);
$msg = "MySQL への接続確認が取れました。";
} catch(PDOException $e) {
$msg = "MySQL への接続に失敗しました。<br>(" . $e->getMessage() . ")";
}
// 接続を閉じる
$conn = null;
?>
エラーの修正は大変だと思いますが応援しています!!
参考になるかもしれない資料
最終手段として,新しくユーザーを作ってみるのも手だと思います!