php로 db 컨트롤 1

by 조쉬 posted Mar 06, 2017
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
2001년도 ms 에서 나온  asp와 vb6.0을 공부했다. vb는 프로그램 처음 시작하는 사람들에게 참 좋은 것 같다.
재미있게 프로그램 원리를 배울수 있다. 쉽게 속성과 메소드를 찾아주는 vb를 접하다가 
직접 모든것을 코딩하는 c 언어를 보니 굉장히 어렵게 느껴졌다. 

그런 asp에 익숙했던 나는 php를 접하면서 php의 db컨트롤이 불편하게 느껴졌다. asp처럼 개체로 지원하는 것이 아니라 배열로 반환해 작업하는 것이 어렵게 느껴쪘다.

하지만 php5가 나오면서 많은 부분 편리하게 디비 컨트롤을 지원하고 있다. 좋은 기능이지만 아직도 많은 php 코드 작성자들은 옛날 방식으로 작성하는 것 같다. 편리하게 디비 컨트롤을 지원하는 php 디비관련 지원 기능을 보자

<?

$rs=new mysqli("localhost","username","password","dbname");
//php5에서 제공하는 mysqli 개체로 손쉽게 디비에 접속한다.

$nam=$_REQUEST["nam"];
$con=$_REQUEST["con"];
$title=$_REQUEST["title"];
$date=time();
// 이전 입력페이지에서 변수값을 받아온다.

$query="insert into gesi (nam,con,title,date) values ('$nam','$con','$title',$date)";
$rs->query($query);
// 새롭게 생성된 rs개체를 통해 디비에 자료를 입력한다. 새롭게 생성된 rs 개체는 mysqli 개체의 메소드등을 실행시킬수 있다.

$query="select * from gesi";


$rs2=$rs->query($query);
//레코드셋을 만든다. 또 다른 rs2 개체가 생성되었다. rs2 도한 mysqli 개체의 메소드등을 그대로 사용할수 있다.
$num=$rs2->num_rows;

 //레코드 갯수를 얻는다. $num 변수에는 레코드 갯수가 저장된다.

for ($i=0;$i<$num;$i++)
{
$row=$rs2->fetch_object();
// 레코드 셋으로 만들어진 데이터가 개체형으로 변환된다. 기존 php4등에서는 연관배열등으로 자료를 받았지만
    php5에서는 개체형으로 자료를 받아 손쉽게 데이터를 처리한다.
$data=$row->date;
$data=date('y-m-d',$data);
echo"제목 :". $row->title ."<br> 이름:". $row->nam ."<br> 내용:". $row->con ."<br>".$data."<p>";
//$row->title 로 자료를 표시한다. 배열이 아닌 객체형으로 표현가능하다.
}

$rs->close();
// 스크립트가 실행되면 디비와 생성된 개체가 없어지므로 디비연결을 닫지 않아도 무방하다.

?>

* mysqli 확장 묘듈이 제공하는 api
mysqli_query() 연결된 데이터 베이스에 sql 문을 실행한다.
mysqli_num_rows() 검색된 레코드의 총 갯수를 반환
mysqli_fetch_array() 레코드셋에서 연관배열로 반환
mysqli_fetch_object() 레코드셋에서 하나의 레코드를 객체로 반환
'''등등