質問: $sql; // $e->getMessage() でエラー内容を参照可能(デバック時のみ表示) // echo $e->getMessage(); } } } ?> ログイン ログイン画面 ログインフォーム ユーザーID"> パスワード 新規登録フォーム ```
回答: lolipopのサーバで実際に接続を試しましたが、PDOの利用は可能なようです。 おそらく原因は下記DSN定義にて半角スペースが入っていることによるものです。 `mysql:`直後の半角スペースを削除することで接続ができるようでした。 詳細は不明ですが、ローカル環境とPHPのバージョンが異なっている等により挙動が変わっているのかもしれません。 ``` // 2. ユーザIDとパスワードが入力されていたら認証する // $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']); $dsn = sprintf('mysql:host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']); ``` 追記: 切り分けのために、下記のみとしたphpを実行してみてください。 少なくとも私の利用している環境では正常に結果を取得できました。 ``` PDO::ERRMODE_EXCEPTION)); var_dump($pdo); $stmt = $pdo->query("SELECT now()"); var_dump($stmt); var_dump($stmt->fetchAll()); } catch (PDOException $e) { var_dump($e); } ?> /* string(15) "/tmp/mysql.sock" string(74) "mysql:host=xxxxxxx;dbname=xxxxxxxx;charset=utf8" object(PDO)#1 (0) { } object(PDOStatement)#2 (1) { ["queryString"]=> string(12) "SELECT now()" } array(1) { [0]=> array(2) { ["now()"]=> string(19) "2017-10-14 10:11:56" [0]=> string(19) "2017-10-14 10:11:56" } } */ ```