[PHP&MySQL]PDOによるDB接続

久々にはまりました。

PDOによるDB接続のコードはこんな感じ。

$dsn = “mysql: host=HostName; dbname=DbName; charset=utf8”; 
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false);
$pdo = new PDO($dsn, “UserName”, “Password”, $options);

ローカルXAMPP上では問題なく、DB接続できました。
これをレンタルサーバ上に持っていくと・・・ DB接続できない。
以下、エラー。

SQLSTATE[28000] [1045] Access denied for user ‘xxxxx’@’localhost’ (using password: YES)’ in /home/xxx/public_html/xxx/xxxxx.php

ホスト名やユーザ、パスワードを何度も確認。ネットを調べ、何度もコードを書き直し、挙句、レンタルサーバ屋さんに問い合わせたが分からず。
諦め気分遊び半分で、テレビ見ながら、「変な文字でも紛れ込んでいるのかなぁ」 と、上のコードを手入力し直して実行してみると !  「つながった !!」

よく調べてみると、DSNの “mysql:” と “host=” の間に1文字空白があったのだが、これを削除したらDB接続できた。何という・・・。しばらく言葉が出ない。丸1日調べて、結果がこれ???

ホスト名、DB名の間の区切り文字 “;” の後ろの空白は問題ないみたい。

よそ見しながらコードを打ち直したとき、空白1文字を打ち忘れ、そのため原因が分かりました。ローカルの XAMPP 上では何の問題もなかったし気づかなかったなぁ。

何ですか、これ、バージョンの違いとか、そういうやつですか???

Follow me!

[PHP&MySQL]PDOによるDB接続” に対して 32,850 件のコメントがあります


    Fatal error: Allowed memory size of 209715200 bytes exhausted (tried to allocate 31457360 bytes) in /home/avanju/avanju.com/public_html/system/wp/wp-includes/class-walker-comment.php on line 196