Study/PHP

MySQL에서 PHP로 데이터 읽어오기

Kostrian 2015. 1. 29. 11:39

먼저 PHP에서 MYSQL로 연결을 해야 된다. MYSQL에 접근해기 위해서는 호스트 정보와 DB 아이디, 비밀번호, DB 이름이 필요하다. 보안상 이건 떨어트려 놓는것이 좋으므로 다른 파일에서 설정해 놓는다.


1
2
3
4
5
6
7
<!--config.php-->
<?php
$DB['HOST'] = '127.0.0.1';
$DB['id'] = '****';
$DB['pw'] = '****';
$DB['db'] = 'kostdb';
?>
cs


다음은 MYSQL과의 연결을 해야 한다. 이것도 다음에 다시 활용하기 위해 따로 파일을 만든다.


1
2
3
4
5
<!--preset.php-->
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');
$mysqli = new mysqli($DB['HOST'],$DB['id'],$DB['pw'],$DB['db']);
?>
cs


다음으로는 이제 데이터를 읽는 역할을 할 PHP를 작성하면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!--data.php-->
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/preset.php');
 
// 테이블의 모든 정보를 읽어온다.
$query = 'SELECT * FROM bbs';
// 쿼리를 실행하고 그 결과값을 $result변수에 넣는다.
$result = $mysqli->query($query);
$total_record = $result->num_rows;
 
$result_array = array();
 
for ( $i = 0$i < $total_record$i++ ) {
  // 한행씩 읽기 위해 offset을 준다.
  $result->data_seek($i);
  
  // 결과값을 배열로 바꾼다.
  $row = $result->fetch_array();
  // 결과값들을 JSON형식으로 넣기 위해 연관배열로 넣는다.
  $row_array = array(
    "doc_idx" => $row['doc_idx'],
    "member_idx" => $row['member_idx'],
    "subject" => $row['subject'],
    "content" => $row['content'],
    "reg_date" => $row['reg_date']
    );
  // 한 행을 results에 넣을 배열의 끝에 추가한다.
  array_push($result_array,$row_array);
}
 
// 위에서 얻은 결과를 다시 JSON형식으로 넣는다.
$arr = array(
  "status" => "OK",
  "num_result" => "$total_record",
  "results" => $result_array
  );
 
// 만든건 그냥 배열이므로 JSON형식으로 인코딩을 한다.
$json_array = json_encode($arr);
 
// 인코딩한 JSON배열을 출력한다.
print_r($json_array);
?>
cs


결과


{"status":"OK","num_result":"3","results":[{"doc_idx":"30","member_idx":"1","subject":"Hello!","content":"I'm Kostrian!","reg_date":"1417346793"},{"doc_idx":"41","member_idx":"1","subject":"HOhoho","content":"Hahaha","reg_date":"1417331690"},{"doc_idx":"1","member_idx":"1","subject":"aa","content":"aa","reg_date":"1234"}]}

'Study > PHP' 카테고리의 다른 글

간단한 웹쉘 구현  (0) 2015.01.29