PHP언어로 만들수 있는 프로그램이나
만들어져있는 프로그램의 95%는 DB와 연동하는 프로그램입니다.
중요한부분입니다.
MySQL 데이터베이스 관련 PHP함수
mysql_connect();
--MySQL 서버에 접속하는 함수
mysql_select_db();
--MySQL 데이터베이스를 선택하는 함수
mysql_query();
--MySQL 서버에 query를 보낸후 실행시키는 함수
mysql_fetch_array();
--쿼리 실행후 결과를 필드이름색인 또는 숫자색인으로 된 배열로 반환하는 함수
mysql_free_result();
--결과값을 제거(해체)하는 함수
mysql_close();
--MySQL 접속을 닫는 함수
mysql_connect() 함수 예제
<?
$link = mysql_connect("localhost","byc","freely21c");
//# MySQL 서버에 접속 #//
// 접속에 성공하면 $link변수에는 DB연결에 대한 링크식별자 값이 들어가며 접속에 실패하면
// 아무값도 들어가지 않는다.
if ($link)
echo "연결성공";
else
echo "연결실패";
//# MySQL 접속해체 #//
mysql_close($link);
?>
※ localhost을 써놓는부분은 해당 MySQL서버가 있는 위치를 말한다.
해당 서버에 MySQL서버가 있다면 localhost을 쓰지만 다른곳에 있느다면 해당 ip나 도메인을 씁니다.
mysql_select_db() 함수 예제
<?
$link = mysql_connect("localhost","byc","freely21c");
//# MySQL 서버에 접속 #//
// 접속에 성공하면 $link변수에는 DB연결에 대한 링크식별자 값이 들어가며 접속에 실패하면
// 아무값도 들어가지 않는다.
mysql_select_db("byc",$link);
//링크 식별자값으로 이용하여 사용가능한 데이터베이스를 선택한다.
//# MySQL 접속해체 #//
mysql_close($link);
?>
※ or die("출력할내용"); 을 mysql관련함수 모두의 뒤에 붙이면
mysql관련함수가 에러나면 에러 메세지를 출력하지 않고 "출력할내용"이 화면에 출력된다.
ex > mysql_select_db("byc",$link) or die("에러입니다.^^");
mysql_query() 함수 예제
select query
<?
$link = mysql_connect("localhost","byc","freely21c");
//# MySQL 서버에 접속 #//
// 접속에 성공하면 $link변수에는 DB연결에 대한 링크식별자 값이 들어가며 접속에 실패하면
// 아무값도 들어가지 않는다.
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
//링크 식별자값으로 이용하여 사용가능한 데이터베이스를 선택한다.
$qry_chk = mysql_query(" select * from pet3 ",$link);
//# 링크식별자로 연결된 DB에 query를 보낸후 해당 MySQL에서 실행시킨다. #//
//# 링크식별자를 입력하지 않으면 가장 최근에 열어진 링크식별자를 자동으로 사용하게 된다. #//
//# SELECT문,INSERT문,UPDATE문,DELETE문 모두 사용하다.
//# 리턴되는 값은 성공이면 참(TRUE), 거짓이면 거짓(FALSE)을 리턴한다. #//
if($qry_chk)
echo "실행 성공";
else
echo "실행 실패";
//# MySQL 접속해체 #//
mysql_close($link);
?>
insert query
<?
$link = mysql_connect("localhost","byc","freely21c");
//# MySQL 서버에 접속 #//
// 접속에 성공하면 $link변수에는 DB연결에 대한 링크식별자 값이 들어가며 접속에 실패하면
// 아무값도 들어가지 않는다.
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
//링크 식별자값으로 이용하여 사용가능한 데이터베이스를 선택한다.
$qry_chk = mysql_query(" insert into pet3 values('jun','lee','sik','0','1988-02-01',12,13) ",$link);
//# 링크식별자로 연결된 DB에 query를 보낸후 해당 MySQL에서 실행시킨다. #//
//# 링크식별자를 입력하지 않으면 가장 최근에 열어진 링크식별자를 자동으로 사용하게 된다. #//
//# SELECT문,INSERT문,UPDATE문,DELETE문 모두 사용하다.
//# 리턴되는 값은 성공이면 참(TRUE), 거짓이면 거짓(FALSE)을 리턴한다. #//
if($qry_chk)
echo "실행 성공";
else
echo "실행 실패";
//# MySQL 접속해체 #//
mysql_close($link);
?>
※ 파란색은 주석입니다. 코딩하지 않아도 되삼
mysql_query() 함수 예제
update query
<?
$link = mysql_connect("localhost","byc","freely21c");
//# MySQL 서버에 접속 #//
// 접속에 성공하면 $link변수에는 DB연결에 대한 링크식별자 값이 들어가며 접속에 실패하면
// 아무값도 들어가지 않는다.
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
//링크 식별자값으로 이용하여 사용가능한 데이터베이스를 선택한다.
$qry_chk = mysql_query(" update pet3 set owner = 'haha' where name = 'lee' ",$link);
//# 링크식별자로 연결된 DB에 query를 보낸후 해당 MySQL에서 실행시킨다. #//
//# 링크식별자를 입력하지 않으면 가장 최근에 열어진 링크식별자를 자동으로 사용하게 된다. #//
//# SELECT문,INSERT문,UPDATE문,DELETE문 모두 사용하다.
//# 리턴되는 값은 성공이면 참(TRUE), 거짓이면 거짓(FALSE)을 리턴한다. #//
if($qry_chk)
echo "실행 성공";
else
echo "실행 실패";
mysql_close($link);
//# MySQL 접속해체 #//
?>
delete query
<?
$link = mysql_connect("localhost","byc","freely21c");
//# MySQL 서버에 접속 #//
// 접속에 성공하면 $link변수에는 DB연결에 대한 링크식별자 값이 들어가며 접속에 실패하면
// 아무값도 들어가지 않는다.
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
//링크 식별자값으로 이용하여 사용가능한 데이터베이스를 선택한다.
$qry_chk = mysql_query(" delete from pet3 where name = 'jun' ",$link);
//# 링크식별자로 연결된 DB에 query를 보낸후 해당 MySQL에서 실행시킨다. #//
//# 링크식별자를 입력하지 않으면 가장 최근에 열어진 링크식별자를 자동으로 사용하게 된다. #//
//# SELECT문,INSERT문,UPDATE문,DELETE문 모두 사용하다.
//# 리턴되는 값은 성공이면 참(TRUE), 거짓이면 거짓(FALSE)을 리턴한다. #//
if($qry_chk)
echo "실행 성공";
else
echo "실행 실패";
mysql_close($link);
//# MySQL 접속해체 #//
?>
mysql_fetch_array() 함수 예제
쿼리 실행후 결과를 필드명 색인 또는 숫자 색인으로 된 배열형태로 반환하는 함수입니다.
INSERT, UPDATE, DELETE 는 결과 데이타가 없습니다.
왜냐하면 실행후 결과가 나오지 않기 때문입니다.
하지만 SELECT 는 쿼리실행후 결과가 출력되며
이렇게 출력된 데이타를 PHP파일에서 처리해서 브라우저에게 출력하게 됩니다.
결과 데이타셋에서 첫번째 레코드의 단일 컬럼정보를 출력하기
<?
$link = mysql_connect("localhost","byc","freely21c");
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
$qry_result = mysql_query(" select * from pet3 ",$link);
$qry_row = mysql_fetch_array($qry_result);
//# $qry_result 변수값에서 select 쿼리의 결과 레코드등중 첫번째 레코드를 한줄가져와서
//# 배열형태로 $qry_row변수에 넣습니다.
echo $qry_row["name"];
//# 대입한 배열변수에서 출력할 단일 컬럼명을 이용해 데이타를 출력한다.
//# MySQL 접속해체 #//
mysql_close($link);
?>
결과 데이타셋에서 첫번째 레코드의 모든 컬럼정보를 출력하기
<?
$link = mysql_connect("localhost","byc","freely21c");
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
$qry_result = mysql_query(" select * from pet3 ",$link);
$qry_row = mysql_fetch_array($qry_result);
//# $qry_result 변수값에서 select 쿼리의 결과 레코드등중 첫번째 레코드를 한줄가져와서
//# 배열형태로 $qry_row변수에 넣습니다.
echo $qry_row["name"] . " " . $qry_row["owner"] . " " . $qry_row["jong"] . " " . $qry_row["sex"] . " " . $qry_row["birth"];
//# 대입한 배열변수에서 출력할 여러 컬럼명을 이용해 데이타를 출력한다.
//# MySQL 접속해체 #//
mysql_close($link);
?>
결과데이타셋에서 모든 레코드의 모든 컬럼정보를 출력하기
<?
$link = mysql_connect("localhost","byc","freely21c");
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
$qry_result = mysql_query(" select * from pet3 ",$link);
//# $qry_result 변수값에서 select 쿼리의 결과 레코드를 첫번째부터 하나씩 가져온다.
첫번째 레코드를 한줄가져와서
//# 배열형태로 $qry_row변수에 넣습니다.
//# while 반복문으로 조회결과를 한 로우씩 뽑아온다.
//# 로우결과가 없을때까지 반복해서 실행합니다.
while($qry_row = mysql_fetch_array($qry_result))
{
echo $qry_row["name"] . " " . $qry_row["owner"] . "<br>";
echo $qry_row["jong"] . " " . $qry_row["sex"] . " " . $qry_row["birth"] . "<br>";
}
//# MySQL 접속해체 #//
mysql_close($link);
?>
mysql_free_result() 함수 예제
결과값(result)을 제거(해체)하는 함수
<?
$link = mysql_connect("localhost","byc","freely21c");
mysql_select_db("byc",$link) or die("데이터베이스를 잘못선택하였습니다.");
$qry_result = mysql_query(" select * from pet3 ",$link);
//# $qry_result 변수값에서 select 쿼리의 결과 레코드등중 첫번째 레코드를 한줄가져와서
//# 배열형태로 $qry_row변수에 넣습니다.
$qry_row = mysql_fetch_array($qry_result);
//# mysql_query함수의 리턴값인 result(데이타셋)에 내용을 모두 제거한다.
//# 사실 안해줘야 되지만 이런게 있다는것을 알아두자.
mysql_free_result($qry_result);
//# MySQL 접속해체 #//
mysql_close($link);
?>
mysql_close() 함수 예제
MySQL 접속을 닫는 함수
<?
$link = mysql_connect("localhost","byc","freely21c");
//# MySQL 서버에 접속 #//
// 접속에 성공하면 $link변수에는 DB연결에 대한 링크식별자 값이 들어가며 접속에 실패하면
// 아무값도 들어가지 않는다.
mysql_close($link);
//# MySQL 접속해체 #//
//# 사실 mysql_close()함수도 마지막 부분에서 자동으로 종료되기
//# 때문에 사용할 필요가 없다.
?>
1편 DB의 사용
본 강의는 MySQL기준입니다.
웹프로그램에서 빠질 수 없는 DB의 사용입니다.
mysql_connect, mysql_fetch_array등의 함수를 아직도 이용하시나요?
럼 본 강의를 본것은 행운입니다^^
저는 일단 Pear를 사용하여 DB를 사용합니다.
하지만 Pear도 복잡한 함수와 사용법을 배워야 합니다.
그래서 저는 Pear를 한번더 감싸서 편리하게 사용하고 있습니다.(Adapter패턴)
일단 제가 사용하고 있는 DB 클래스입니다.
굳이 소스코드를 이해할려고 하실 필요는 없습니다.
DB의 사용이 이렇게 간결하게 될 수 있다는 것을 알려드릴려는것 뿐입니다.
많이 사용하는 방식의 DB처리를 예제로 보여드리겠습니다.
'Web Development > PHP' 카테고리의 다른 글
[PHP] DB의 데이타를 게시판형식으로... (1) | 2009.06.06 |
---|---|
[PHP] 로그인(login) 프로그램 구현 (2) | 2009.06.06 |
[PHP] 카운터 만들기 (0) | 2009.06.05 |
[PHP] 함수에 대해서 (0) | 2009.06.05 |
[PHP] 제어 구조에 대해서 (0) | 2009.06.05 |