PHPで外部ファイルを読み込む
公開日: 2024-04-25 23:13:35
PHPで外部ファイルを読み込むincludeについてまとめました。
今回のコードでは、db_connect.phpファイルの中でデータベースの接続に成功した場合、PDO(PHP Data Objects)のインスタンスを作成して、そのPDOを使ってSELECT文を実行しています。
外部ファイルを読み込む際はincludeで行う。
こちらのコードを使うことによってSQLインジェクションの対策に模様。
select.php
// セッションの開始
session_start();
// DB情報を読み込む
include '../../db/db_connect.php';
try {
// PDOインスタンスの作成
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// オフセットとリミットを取得
$offset = isset($_GET['offset']) ? (int)$_GET['offset'] : 0;
$limit = isset($_GET['limit']) ? (int)$_GET['limit'] : 10; // 既定値は10
// SQLクエリを準備(MulchBulletinBoardテーブルから指定された範囲のデータを取得)
$stmt = $pdo->prepare("SELECT * FROM MulchBulletinBoard ORDER BY DATE DESC LIMIT :limit OFFSET :offset");
// パラメータをバインド
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
// クエリの実行
$stmt->execute();
// データの取得と出力
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($data) {
// JSON形式で出力
header('Content-Type: application/json');
echo json_encode($data);
} else {
// レコードが見つからない場合もJSONで通知
header('Content-Type: application/json');
echo json_encode(["message" => "No records found!"]);
}
} catch (PDOException $e) {
// エラーの場合はメッセージを出力
header('Content-Type: application/json');
echo json_encode(["error" => $e->getMessage()]);
exit;
}
db_connect.php
// テスト
$host = 'localhost';
$dbname = 'testDB';
$user = 'root';
$pass = 'root';
// PDO(PHP Data Objects)
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("データベース接続失敗: " . $e->getMessage());
}