2018年7月4日水曜日

"PHP error:could not find driver"について備忘録


雑記となりますが。。。 
PHPとMySQLを勉強していて、いざPDOオブジェクトを使いDatabaseを練習しようとした所、タイトルの 「PHPerror:could not find driver」 に遭遇しました。 ほとんどの技術サイト、知恵袋では、PHP等の環境のチェックをするように助言されておりました。

 PHPinfo ( http://localhost/dashboard/phpinfo.php ) を開くと、PDOのDriverのところにMySQLが対応できておらず、何とかPDODriverをMySQLに対応させるように誘導されているようでした。 ただ、私のPHPinfoのPDOの所には、問題なく「MySQL」の文字が...。

※PHPinfoはA-Zで順番で並んでいるので、「P」は割と下の方ですよ。

PHPのアップデートや、他の参考のものも試しましたが、うまくいかず。
ただ、落ちは、悲しいほど単純でした。

私の使っている参考書では、「$dsn」という変数を先に宣言し、そこにDatabaseのホストや名前を入れておく手順でした。
その際、変数である$dsnに値を代入する際、文章を 「’(シングルクォーテーション)」 で囲ってしまっていたのです。
その$dsnに$Database_name等を代入しておくのですが、気づきませんでした...。

当たり前だったのですが、シングルクォーテーションで囲った文字列は、変数の値に置換されず、そのまま変数名のままで代入されてしまうのですよね。

$dsn = '....;dbname=$Database_name;......';

のような感じです。
かくして、そのまま変数名が代入され、肝心の変数の中身はどこへやら。
この部分を、 「”(ダブルクォーテーション)」 に直したところ、あっさり治りました。

ただ、変数としては、文字列にシングルクォーテーションを使用して代入しても問題自体はない為、その旨のエラーは無しです。

凄い初歩的な所に今さらはまってしまった...。

これは、PHPの部分で勉強していたにも関わらず、時間が空きすぎて、失念しておりました(汗

怖いのは、これが、変数エラーではなく、ドライバー関係のエラーとして出たこと。
私のように、こんなところではまってしまう方がいらっしゃらないように(まずいないと思いますが。。。) 

実際のドライバに問題が無くても、他が間違えているだけでこのエラーが出るという、おバカな備忘録でした(汗

0 件のコメント:

コメントを投稿

関連記事

人気の投稿

記事を書いている人

自分の写真
ギター兼DTMプレーヤー。時にはコーディング、プログラミングもいそしみます。 フリーで活動中!