前提・実現したいこと
前提
・Amazon LigthsailにてLAMP環境のインスタンスを立てています
実現したいこと
・PHPでPDOを使用してMySQLへ接続したいです
発生している問題・エラーメッセージ
new PDO()しているのですが、その行以降のコードが実行されず、Exceptionも吐かれません。
根本的に足りない部分があるのか、他に確認するべき部分があるか、ご教示いただきたいです。
該当のソースコード
php
1try { 2 $dsn = 'mysql:dbname={DB名};charset=utf8mb4;host=127.0.0.1'; 3 $user = 'root'; 4 $password = '{実際のpassword}'; 5 $pdoErrorMode = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); 6 7 $pdo = new PDO($dsn, $user, $password, $pdoErrorMode); 8 9 error_log("pdo-end".PHP_EOL, 3, "{ログ出力先のパス}"); 10 // コードを実行してもこのログは出力されない。以降のコードが実行されない。 11 12} catch (PDOException $e) { 13 $errorMessage = $e->getMessage(); 14 error_log(json_encode($errorMessage).PHP_EOL, 3, "{ログ出力先のパス}"); 15 // コードを実行してもExceptionをcacheしない 16} 17
試したこと
1.php.iniファイルでextensionがコメントアウトされていたのを解除。
→変化なし
// php.iniファイル ;extension=pdo_mysql ↓ extension=pdo_mysql
2. phpinfo()でpdoのドライバが入ってるか確認
→問題なさそう
3. 書き方を変えてみる
→全て変化なし
php
1// hostをlocalhostにしてみる 2$dsn = 'mysql:dbname={DB名};charset=utf8mb4;host=localhost'; 3 4// utf8にしてみる 5$dsn = 'mysql:dbname={DB名};charset=utf8;host=127.0.0.1'; 6 7// charsetなくしてみる 8$dsn = 'mysql:dbname={DB名};host=127.0.0.1';
補足情報(FW/ツールのバージョンなど)
インスタンス:Amazon Lightsail LAMP環境インスタンス
PHPバージョン:7.4.15
MySQLバージョン:8.0.23
インスタンスにsshしてインスタンス上でMySQLへのログインはできます。
その際に使用するユーザー・パスワードは上記で使用しているものと同じです。
ローカル環境ではDockerで別コンテナのDBに接続していますが、
hostとパスワードの部分が違うだけですが、それは問題なく接続できます。
他に必要な情報あればご指摘いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。