
PHP で MySQL に PDO で接続する
接続先のホスト名(mysql◯◯.xserver.jp)やデータベース名は、エックスサーバーのサーバーパネルの「MySQL 設定」で確かめられます。
$dsn = 'mysql:dbname=データベース;host=mysql◯◯.xserver.jp;charset=utf8mb4';
$user = 'ユーザーID';
$password = 'パスワード';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
error_log('DB 接続エラー: ' . $e->getMessage());
exit('いま接続できません。時間をおいてお試しください。');
}
エラーの中身(getMessage)をそのまま画面に出すと、接続先などが訪問者に見えてしまいます。公開するページでは、ログに書き出して、画面には短い案内だけを出しましょう。文字コードは、絵文字も扱える utf8mb4 がおすすめです。
エックスサーバーでは、使う MySQL のバージョンによって接続先のホストが変わります。
SQL を実行するサンプル
$stmt = $dbh->query('SELECT * FROM test');
foreach ($stmt as $row) {
echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8');
}
値を条件に使うときは、query() ではなく prepare() と execute() を使います(SQL インジェクションを防ぐため)。
エックスサーバーの最新情報
最新の情報は、エックスサーバーの公式の「ニュース」で確かめられます。