PHP와 MySQL은 웹 개발에서 자주 사용되는 조합입니다.
PHP를 사용하여 MySQL 데이터베이스와 연동하면 동적인 웹 애플리케이션을 개발할 수 있습니다.
아래에서 PHP와 MySQL의 기본 연동 방법과 예시를 자세히 설명하겠습니다.
1. MySQL 데이터베이스 연결 설정:
PHP에서 MySQL 데이터베이스에 접속하기 위해서는 먼저 연결 설정을 해야 합니다.
다음은 PHP에서 MySQL 데이터베이스에 연결하기 위한 예시입니다.
<?php
$host = 'localhost'; // MySQL 호스트
$username = 'root'; // MySQL 사용자명
$password = 'password'; // MySQL 비밀번호
$database = 'mydatabase'; // 사용할 데이터베이스명
$conn = mysqli_connect($host, $username, $password, $database);
if (!$conn) {
die('MySQL 연결 실패: ' . mysqli_connect_error());
}
?>
위의 예시에서는 `mysqli_connect()` 함수를 사용하여 MySQL 데이터베이스에 연결하고, 연결이 실패한 경우 오류 메시지를 출력합니다.
2. 쿼리 실행과 결과 처리:
MySQL 데이터베이스에 쿼리를 실행하고 결과를 처리하기 위해서는 다음과 같은 단계를 따릅니다.
- SQL 쿼리 작성: MySQL에서 실행할 쿼리를 작성합니다.
- 쿼리 실행: `mysqli_query()` 함수를 사용하여 쿼리를 실행합니다.
- 결과 처리: 실행된 쿼리의 결과를 처리합니다.
다음은 데이터베이스의 테이블에서 데이터를 조회하는 예시입니다.
<?php
$query = "SELECT * FROM users";
$result = mysqli_query($conn, $query);
if ($result) {
// 결과 처리
while ($row = mysqli_fetch_assoc($result)) {
echo $row['username'] . '<br>';
}
} else {
echo '쿼리 실행 실패: ' . mysqli_error($conn);
}
// 결과 해제
mysqli_free_result($result);
// 연결 종료
mysqli_close($conn);
?>
위의 예시에서는 `SELECT * FROM users` 쿼리를 실행하여 `users` 테이블의 모든 데이터를 가져오고, 각 사용자명을 출력합니다.
쿼리 실행이 성공한 경우 결과를 반복하여 처리하고, 실패한 경우에는 오류 메시지를 출력합니다.
3. SQL 인젝션 방지:
PHP에서 MySQL과 연동할 때 보안을 고려해야 합니다. SQL 인젝션 공격을 방지하기 위해 사용자 입력값을 올바르게 처리해야 합니다.
`mysqli_real_escape_string()` 함수를 사용하거나, 준비된 문장(Prepared Statement)을 사용하여 SQL 인젝션을 방지할 수 있습니다.
<?php
$username =
mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
// 쿼리 실행...
?>
위의 예시에서는 `mysqli_real_escape_string()` 함수를 사용하여 사용자 입력값을 이스케이프하여 쿼리에 안전하게 사용합니다.
이상이 PHP와 MySQL의 기본 연동에 대한 예시 설명입니다.
PHP와 MySQL의 연동을 통해 데이터베이스와의 상호작용을 가능하게 하고, 웹 애플리케이션에서 동적인 데이터 처리와 데이터베이스 조작을 할 수 있습니다.
보안 측면에서는 SQL 인젝션에 주의하여 사용자 입력값을 처리해야 합니다.
'SQL > MYSQL' 카테고리의 다른 글
[MYSQL] MySQL에서 진행하는 GIS 응용 프로젝트 (0) | 2023.07.04 |
---|---|
[MYSQL] MySQL에서 공간 데이터의 저장 방법 (0) | 2023.07.03 |
[MYSQL] 지리정보시스템에 대해 (0) | 2023.07.03 |
[MYSQL] 회원 관리시스템 만들기 (0) | 2023.07.03 |
[MYSQL] HTML과 PHP 관계에 대해 (0) | 2023.07.03 |
[MYSQL] PHP 기본 문법에 대해 (0) | 2023.06.27 |
[MYSQL] 스크립트 언어 개요와 HTML 문법에 대해 (0) | 2023.06.27 |
[MYSQL] 웹 사이트 개발 환경 구축에 대해 (0) | 2023.06.27 |