본문 바로가기
안드로이드 웹앱 콘테츠 개발자 양성(국비지원)/DBMS

DBMS 다양한 방법 2(php 파일로 일괄 적용 PDO로 php와 DBMS 연결)

by 차누감 2020. 1. 7.

DBMS 다양한 방법 1 $conn=mysqli_connect('localhost','cw','1234','mrhi_db') or die("DB접속 실패");

과 다르게 php와 DBMS 연결하는 방법을

  $db=new PDO('mysql:host=localhost; dbname=mrhi_db','cw','1234'); 이런 식으로 지정된 객체를 사용해보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
 
    header('Content-Type:text/html; charset=utf-8');
    // DB에 저장할 데이터 [GET, POST, REQUEST를 이용]
    $name = 'robin';
    $msg= 'Nice to meet you';
 
    date_default_timezone_set('Asia/Seoul');
    $now=date('Y-m-d (H:i:s)');
 
    // php와 DBMS를 연동하여 제어해주는 객체 생성
    // PDO(php data object) 클래스
    // PDO객체 생성- 지원가능 DBMS : mysql, mssql, oracle, sqlite, sybase etc..
    $db=new PDO('mysql:host=localhost; dbname=mrhi_db','cw','1234');
 
    // $db는 PDO객체를 가리키는 포인터 변수(참조변수)
    // $db를 이용해서 원하는 쿼리문 실행(DDL, DML, DCL)
    // 1) create
    $db->exec("create table if not exists notice(no int primary key auto_increment, name varchar(20) not null, msg text, date datetime)");
 
 
 
?>
 

php문을 실행하기 위해 해당 파일 클릭

php파일 코드는 테이블만 만들었기 때문에 성공했다면 아래와 같이 흰색 페이지만 나올 것이다.

우선 확인을 위해 cmd창으로 테이블이 만들어졌는지 보자.

 

이제 만든 테이블에 데이터를 삽입하자.

php 실행을 위해 해당 파일 클릭

아직 화면에 보여주는 것이 없기 때문에 성공시 빈 페이지만 보인다.

cmd 창을 이용하여 테이블 내용 확인.

이제 테이블 내용을 불러와서 보여주자.

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
<?php
 
 
    header('Content-Type:text/html; charset=utf-8');
    // DB에 저장할 데이터 [GET, POST, REQUEST를 이용]
    $name = 'robin';
    $msg= 'Nice to meet you';
 
    date_default_timezone_set('Asia/Seoul');
    $now=date('Y-m-d H:i:s');
 
    // php와 DBMS를 연동하여 제어해주는 객체 생성
    // PDO(php data object) 클래스
    // PDO객체 생성- 지원가능 DBMS : mysql, mssql, oracle, sqlite, sybase etc..
    $db=new PDO('mysql:host=localhost; dbname=mrhi_db','cw','1234');
 
    // $db는 PDO객체를 가리키는 포인터 변수(참조변수)
    // $db를 이용해서 원하는 쿼리문 실행(DDL, DML, DCL)
    // 1create
    $db->exec("create table if not exists notice(no int primary key auto_increment, name varchar(20) not null, msg text, date datetime)");
 
    // 2insert
    $db->exec("insert into notice(name, msg, date) values('$name','$msg','$now')");
 
    // 3select [리턴이 필요한 경우는 exec()메소드가 아니라 query()메소드 사용]
    $result=$db->query("select * from notice");
    
    // 결과표 객체의 값을 한줄씩 읽어들이기...
    while($row=$result->fetch()){
        // echo "$row['no'] $row['name'] $row['msg']";
        echo $row['no'].", ".$row['name'].", ".$row['msg'].", ".$row['date']."<hr>";
    }
 
?>
 

아래 사진과 같이 테이블 내용을 보여준다. 실행 할때마다 한줄씩 추가될 것이다.

cmd창에서도 역시 볼 수 있다.

댓글