// 기본값을 1로 설정하고, SQL 인젝션과 관련 보안 문제를 피하기 위해서 integer 로 형변환 한다.
1
2
3
4
5
|
if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
$aid = (int) $_GET['aid'];
} else {
$aid = 1;
}
|
// MySQL 데이터베이스에 연결하고 sakila라는 이름의 데이터베이스를 선택한다.
1
2
|
// Hostname: 127.0.0.1, username: your_user, password: your_pass, db: sakila
$mysqli = new mysqli('127.0.0.1', 'your_user', 'your_pass', 'sakila');
|
// 연결 시도가 실패한다면 이메일 발송 또는 에러 기록 또는 에러 메시지 등을 표시할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
|
if ($mysqli->connect_errno) {
// 실제 사이트는 에러 메시지를 보여주지 않지만 예로 한번 해보자.
echo "죄송합니다, 이 웹사이트에 문제가 발생했습니다.";
echo "Error: MySQL 접속이 실패했습니다. 에러정보는 다음과 같습니다.: \n";
echo "Errno: " . $mysqli->connect_errno . "\n";
echo "Error: " . $mysqli->connect_error . "\n";
exit;
}
|
// SQL 쿼리 실행
1
2
3
4
5
6
7
|
$sql = "SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = $aid";
if (!$result = $mysqli->query($sql)) {
// 쿼리가 실패한다면.
echo "죄송합니다. 문제가 발생했습니다.";
|
// 일반 사이트에서는 하지 않지만 다시 한번 에러 정보 받는 법을 보여준다.
1
2
3
4
5
6
7
8
9
10
11
|
echo "Error: 쿼리 실행이 실패했습니다. 이유는 다음과 같습니다. \n";
echo "Query: " . $sql . "\n";
echo "Errno: " . $mysqli->errno . "\n";
echo "Error: " . $mysqli->error . "\n";
exit;
}
|
// MySQL 연결과 쿼리가 성공했다. 결과는 어디에?
1
2
3
4
5
6
7
8
9
|
if ($result->num_rows === 0) {
// 때로는 결과가 잘 나오지만 때로는 잘 안나온다.
echo "일치하는 것이 없네요. 다시 시도해주세요.";
exit;
}
|
// 이 예제에서는 한 개의 결과가 나오고 결과를 연관 배열로 가져온다. 연관 배열의 key는 테이블의 컬럼 이름이다.
1
2
3
|
$actor = $result->fetch_assoc();
echo "Sometimes I see " . $actor['first_name'] . " " . $actor['last_name'] . " on TV.";
|
// 이제 무작위로 5개의 데이터를 뽑아보자. 그리고 에러 처리도 해보자.
1
2
3
4
5
6
7
8
9
|
$sql = "SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5";
if (!$result = $mysqli->query($sql)) {
echo "죄송합니다. 문제가 발생했습니다.";
exit;
}
|
// 5개의 무작위 배우들을 리스트에 출력하고 각 배우에 링크하자.
1
2
3
4
5
6
7
8
9
|
echo "\n";
while ($actor = $result->fetch_assoc()) {
echo "\n";
echo $actor['first_name'] . ' ' . $actor['last_name'];
echo "\n";
}
echo "\n";
|
// 종료하기 전에 결과에 대한 메모리를 돌려 주고 MySQL을 닫자.
1
2
3
|
$result->free();
$mysqli->close();
|
'IT기술 > php' 카테고리의 다른 글
php 모듈 작동하는지 확인하기 (0) | 2018.10.06 |
---|---|
String 인코딩 확인 후 UTF-8 변환하기 mb_detect_encoding (0) | 2018.10.06 |
PHP 인코딩 확인하기 mb_detect_encoding() (0) | 2018.10.06 |
문자열의 모든 줄바꿈 앞에 HTML 줄바꿈 태그를 삽입 (0) | 2018.10.06 |
php 넘어온 값(request) 확인 (0) | 2018.10.06 |