ロリポップでPHPからMySQLへPDO接続する基本
PHPでDBを扱うなら、まずPDO接続を共通ファイルにまとめます。ページごとにパスワードを書くと、修正漏れやGitHub流出の原因になります。
確認日とこのページの使い方
確認日: 2026年5月19日。この記事では、ロリポップなどのレンタルサーバーでPHPからMySQLへPDO接続する時に、接続情報、エラー文、設定ファイルを分けて確認する方法を整理します。
DBホスト名、DB名、DBユーザー名、DBパスワードは、AI相談や公開記事にそのまま貼らないでください。このページでは本物の値ではなく、伏せ字や項目名だけで確認できるようにします。
このページで整理できること
- PDO接続で必要になるDBホスト、DB名、ユーザー名、パスワード、文字コードの確認
- 接続できない時に、認証、ホスト、DB名、テーブル名、PHPエラーを分ける順番
- ロリポップへ問い合わせる時に、秘密情報を伏せて伝える文面
- AIにPDO/MySQL接続を相談する時に伏せる情報
PDO接続で確認する接続情報
PDO接続で必要な情報は、似た名前が多いため混同しやすいです。ロリポップ管理画面やphpMyAdminで見た値を、まず項目ごとに分けます。
| 項目 | 確認する場所 | 注意点 |
|---|---|---|
| DBホスト名 | ロリポップ管理画面のデータベース情報 | localhostとは限らない。表示されたホスト名を使う |
| DB名 | 管理画面、phpMyAdmin | テーブル名ではなく、接続先データベース名 |
| DBユーザー名 | 管理画面 | ロリポップのログインIDとは別の場合がある |
| DBパスワード | 管理画面、設定時の控え | AI、GitHub、記事、チャットへ貼らない |
| 文字コード | 接続文字列、テーブル設定 | charset=utf8mb4を基本にする |
接続情報は、DB接続情報をローカル設定に分ける方法のように、GitHubへ上げるファイルと本番だけに置くファイルへ分けます。
ページ側は共通ファイルを読む
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/db_config.php';
$stmt = $pdo->query('SELECT id, title, created_at FROM news ORDER BY created_at DESC');
$rows = $stmt->fetchAll();
よくある接続エラー
| 症状 | 原因 | 確認 |
|---|---|---|
| DB接続失敗 | ホスト名、DB名、ユーザー名、パスワード違い | ロリポップ管理画面のDB情報 |
| 文字化け | charset指定不足 | charset=utf8mb4 |
| 真っ白 | PHPエラー非表示 | エラーログ確認 |
| SQLエラー | テーブル名やカラム名違い | phpMyAdminで構造確認 |
エラー文ごとの確認順
PDO接続で止まった時は、エラー文を見て確認場所を分けます。画面に詳細を出し続けるのではなく、確認後はログ側へ寄せるのが安全です。
| エラーや症状 | 先に確認すること | 次に見る場所 |
|---|---|---|
Access denied |
DBユーザー名、DBパスワード、接続権限 | ロリポップ管理画面のDB情報 |
Unknown database |
DB名の間違い、接続先DBの存在 | phpMyAdmin、管理画面 |
could not find driver |
PDO MySQL拡張が使えるPHP環境か | PHPバージョン、サーバー仕様 |
| 真っ白になる | PHPエラー表示、エラーログ、構文エラー | ロリポップでPHPが真っ白になる時の直し方 |
| 接続はできるがSQLで止まる | テーブル名、カラム名、SQL文、権限 | phpMyAdminのテーブル構造 |
本番でエラー詳細を出しすぎない
本番サイトでDBエラーの詳細を画面に出すと、内部情報が見えることがあります。ユーザーには短い文言を出し、詳細はログへ記録する設計が安全です。
ロリポップへ問い合わせる時の文面
サポートへ聞く時は、パスワードを送らずに、契約プラン、PHPバージョン、MySQL利用状況、エラー文を整理します。
PHPからMySQLへPDO接続できないため確認したいです。
契約プラン:
PHPバージョン:
MySQLを作成済みか:
phpMyAdminへログインできるか:
DBホスト名の種類:
DB名の種類:
DBユーザー名の種類:
文字コード:
表示されたエラー:
確認済みのこと:
- DBホスト名を管理画面の値にした
- DB名とテーブル名を混同していない
- DBパスワードはこの問い合わせ文に書いていない
- GitHubや公開ページにDB情報を置いていない
AIにPDO/MySQL接続を相談する時に伏せる情報
AIに相談する時は、実際の接続情報ではなく、伏せ字にしたDSN、エラー文、ファイル構成を伝えます。DBパスワードや管理画面情報は貼りません。
PHPのPDO MySQL接続エラーを切り分けたいです。
環境:
- ローカル / ロリポップ本番:
- PHPバージョン:
- MySQL利用:
ファイル構成:
- includes/db_config.php:
- includes/db_config.local.php:
- 接続を呼び出しているページ:
伏せ字にしたDSN例:
mysql:host=伏せ字;dbname=伏せ字;charset=utf8mb4
表示されたエラー:
確認済み:
- DBホスト名:
- DB名とテーブル名の区別:
- DBユーザー名:
- charset=utf8mb4:
- phpMyAdminでテーブル確認:
伏せる情報:
- DBホスト名の実値
- DB名の実値
- DBユーザー名の実値
- DBパスワード
- 管理画面ログイン情報
- 本番サーバーの秘密設定