반응형
PDO 클래스를 사용하여 MySQL 데이터베이스에 대한 연결을 설정하고 table_name 테이블에 대한 기본 GET, POST, PUT 및 DELETE 요청을 구현합니다. 보안상의 이유로 SQL 주입 공격을 방지하기 위해 데이터베이스를 사용할 때는 항상 준비된 문과 매개 변수화된 쿼리를 사용해야 합니다.
<?php
// Connect to database
$dsn = "mysql:host=localhost;dbname=testdb";
$username = "user";
$password = "password";
try {
$db = new PDO($dsn, $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
exit;
}
// Handle GET request
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
// Get query parameters
$id = $_GET['id'];
// Get data from database
$stmt = $db->prepare("SELECT * FROM table_name WHERE id = ?");
$stmt->execute([$id]);
$data = $stmt->fetch(PDO::FETCH_ASSOC);
// Return response
echo json_encode($data);
}
// Handle POST request
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Get post data
$data = json_decode(file_get_contents('php://input'), true);
// Insert data into database
$stmt = $db->prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
$stmt->execute([$data['column1'], $data['column2']]);
// Return response
echo json_encode(['message' => 'Data inserted']);
}
// Handle PUT request
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
// Get put data
$data = json_decode(file_get_contents('php://input'), true);
// Update data in database
$stmt = $db->prepare("UPDATE table_name SET column1 = ?, column2 = ? WHERE id = ?");
$stmt->execute([$data['column1'], $data['column2'], $data['id']]);
// Return response
echo json_encode(['message' => 'Data updated']);
}
// Handle DELETE request
if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
// Get query parameters
$id = $_GET['id'];
// Delete data from database
$stmt = $db->prepare("DELETE FROM table_name WHERE id = ?");
$stmt->execute([$id]);
// Return response
echo json_encode(['message' => 'Data deleted']);
}
반응형
'Spring Boot' 카테고리의 다른 글
[SpringBoot]Spring Boot 환경에서 이미지 크기 조정 (0) | 2023.02.09 |
---|---|
[Flask] GET, POST, PUT 및 DELETE 작업을 구현하는 REST API를 만드는 방법 (0) | 2023.02.09 |
[SpringBoot] MyBatis로 트랜잭션 관리 (0) | 2023.02.09 |
[PHP] PHP를 사용하여 데이터베이스에서 데이터를 검색하는 간단한 API를 구현하는 방법 (0) | 2023.02.09 |
[SpringBoot] tar파일 압축/압축해제 구현 (0) | 2023.02.08 |