RadarURL

웹 프로그래밍
2014.04.29 17:37

PHP MySQL 명령어 실행 함수 mysql_query

조회 수 7315 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄

[PHP MySQL 명령어 실행 함수 mysql_query]

php에서 데이터베이스(MySQL)에게 SQL 명령어를 실행시키기 위해서는 mysql_query 함수가 사용됩니다.
sql 명령어라 두리뭉실하게 말씀드렸는데, 이것을 기능에 의해서 세분화 해보면 아래와 같습니다.

DDL(데이터정의어) - CREATE, ALTER, DROP
DML(데이터조작어) - SELECT, INSERT, UPDATE, DELETE
DCL(데이터제어어) - GRANT, REVOKE, CASECADE, RESTRICT

mysql_query 함수는 SQL 명령어라면 위의 세가지중 대부분(정확히 전부 테스트해 보지 못했슴)을 멋지게 실행시킵니다. 아래의 예제는 mysql_query 함수를 이용해서 어여쁜 테이블 하나를 만들고 있습니다.

<?php
include("dbcon.php");

$sql = "CREATE TABLE test_member ( ";
$sql = $sql . " seq int not null auto_increment, ";
$sql = $sql . " memuid varchar(20) NOT NULL, ";
$sql = $sql . " name varchar(20) NOT NULL, ";
$sql = $sql . " addr varchar(255) NOT NULL, ";
$sql = $sql . " PRIMARY KEY(seq), ";
$sql = $sql . " UNIQUE memuid (memuid) );";

$result = mysql_query($sql) or die("SQL문 제대로 쓴거 맞아???");

if($result) echo "테이블 Create 성공!!";
?>

다음은 위의 예제에서 생성된 test_member 테이블에 INSERT 문을 이용해서 하나의 레코드를 추가하는 예제입니다.

<?php
include("dbcon.php");

$memuid = "webmadang.net";
$name = "웹마당넷";
$addr = "어쩌시 어쩌구 어쩌동 111-11";

$sql = "INSERT INTO test_member SET ";
$sql = $sql . " memuid ='$memuid', ";
$sql = $sql . " name ='$name', ";
$sql = $sql . " addr ='$addr' ";

$result = mysql_query($sql) or die("또 틀리면 죽는다!!!");
$rows = mysql_affected_rows();

if($result) echo "INSERT로 입력된 레코드의 갯수는:$rows";
?>

MySQL에게 전달된 SQL 명령어가 INSERT, UPDATE, DELETE, DROP 등이라면 mysql_query 함수의 실행결과가 참일때 TRUE를 반환하게 되며 mysql_affected_rows 함수를 이용해서 변경된 레코드의 갯수를 알수 있습니다. 위의 예제가 성공하게 되면 "INSERT로 입력된 레코드의 갯수는:1" 이라는 문자열이 출력됩니다.

아래 예제는 SELECT 문을 이용해서 위의 예제에서 입력된 레코드를 화면에 출력하게 됩니다.

<?php
include("dbcon.php");

$sql = "SELECT memuid, name, addr FROM test_member ";

$result = mysql_query($sql) or die("제대로 좀 써봐!!!");
while($row = mysql_fetch_row($result))
echo"'$row[0]' '$row[1]' '$row[2]'<br>\n";
?>

select 문의 실행결과로 반환된 레코드셋(data set)을 가져오기 위해서는 mysql_fetch 시리즈로 시작되는 함수들중 하나를 사용해야 합니다. 위에 사용된 mysql_fetch_row 함수는 레코드셋을 배열로 반환하는데 개별 컬럼의 값을 가져오기 위해서는 위와 같이 컬럼의 순서를 나타내는 번호를 사용해야 합니다.

echo"'$row[0]' '$row[1]' '$row[2]'<br>\n";

반환된 레코드셋을 컬럼명을 이용해서 참조하기 위해서는 mysql_fetch_array 함수를 사용합니다.
아래 예제는 위의 예제에서 사용된 mysql_fetch_row 함수를 mysql_fetch_array 함수로 바꿔 사용했습니다.

<?php
include("dbcon.php");


$sql = "SELECT memuid, name, addr FROM test_member ";

$result = mysql_query($sql) or die("제대로 좀 써봐!!!");
while($row = mysql_fetch_array($result)){
echo"'$row[memuid]' '$row[name]' '$row[addr]'<br>\n";
echo"'$row[0]' '$row[1]' '$row[2]'<br>\n";
}
?>

위의 예제에서 보이듯이 mysql_fetch_array 함수는 컬럼의 값을 가져올때 컬럼명이든 컬럼의 번호든 상관없습니다.

마지막으로 MySQL 테이블에서 레코드셋이 아닌 단 한개의 데이터만 가져올수 있는 mysql_result 함수가 있습니다.
아래는 mysql_result 함수의 사용예제입니다.

<?php
include("dbcon.php");


$sql = "SELECT memuid, name, addr FROM test_member ";

$result = mysql_query($sql) or die("제대로 좀 써봐!!!");
echo mysql_result($result,0,0)."<br>\n";
echo mysql_result($result,0,1)."<br>\n";;
echo mysql_result($result,0,2)."<br>\n";;

?>

mysql_result 함수는 mysql_fetch_row 함수나 mysql_fetch_array 함수보다 두개의 인자를 더 취하는데 첫번째 인자는 레코드(행)번호이고, 두번째 인자는 컬럼의 번호입니다. 특이한 점은 레코드 번호나 컬럼의 번호가 1부터 시작하는게 아니고 0 부터 시작한다는 것입니다.

mysql_result($result,0,0) 은 첫번째 레코드, 첫번째 컬럼을 의미합니다.
mysql_result($result,0,1) 은 첫번째 레코드, 두번째 컬럼을 의미합니다.
mysql_result($result,0,2) 은 첫번째 레코드, 세번째 컬럼을 의미합니다.

mysql_result($result,1,1) 은 두번째 레코드, 두번째 컬럼을 의미합니다.
mysql_result($result,1,2) 은 두번째 레코드, 세번째 컬럼을 의미합니다.
mysql_result($result,1,3) 은 두번째 레코드, 네번째 컬럼을 의미합니다.


php4 이전버전에서는 mysql_fetch_row 함수가, mysql_fetch_array 함수보다 속도면에서 빠른것으로 소개되었으나, 현재는 속도차이가 거의 없다고 합니다.

위의 include("dbcon.php") 는 MySQL의 접속 명령어가 삽입되어 있는 dbcon.php 파일을 포함하라는
뜻입니다. dbcon.php 파일의 내용은 다음과 같을 것입니다.

<?php
$hostname = "localhost"; // 호스트를 식별할 수 있는 호스트명이나 ip
$user = "myuser"; // MySQL에서 사용할 데이터베이스 사용자명
$password = "********"; // MySQL에서 사용할 데이터베이스에 접속하기 비밀번호
$database = "testdb"; // MySQL에서 사용할 데이타베이스명
$connect = mysql_connect ($hostname, $user, $password) or die ("데이터베이스 접속실패");;
mysql_select_db ($database, $connect);
?>

 

출처 : http://www.webmadang.net/develop/develop.do?action=read&boardid=1003&page=2&seq=44

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 2002029
2614 취미 <문경맥주> 구입 할 수 있는 곳은 새 창 열림 new 타오르는드래곤61 2026.10.05 0
2613 데이터베이스 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리 new 괴랄한재규어89 2026.10.05 0
2612 사무 소프트웨어 용인두피문신 고민? 만족 후기 보려면 new 날카로운꿩11 2026.10.05 0
2611 논문 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통 new 타오르는켄타우로스86 2026.10.05 0
2610 윈도우즈 웨딩누브라, 완벽한 드레스 핏을 위한 선택 new 날카로운감시자22 2026.10.05 0
2609 인터넷 성공적인 중고화물차 선택, 현명한 가이드 new 붉은드래곤50 2026.10.05 0
2608 가상화 인천맛집 순위 new 차가운파편97 2026.10.05 1
2607 응용 프로그래밍 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라 new 힘겨운암석76 2026.10.05 0
2606 카메라 파주누수업체, 신속 해결 전문가의 비결 new 차가운에메랄드79 2026.10.05 0
2605 u-E(통합센터) 올해의 핫플 선정 간석동 마블! 010&&8923&&0291 new 교활한감시자99 2026.10.05 1
2604 웹서버,WAS 손목터널증후군 치료, 현명한 선택 기준은? new 괴상한두루미52 2026.10.05 1
2603 u-E(통합센터) 손목터널증후군, 두팔로정형외과에서 해답을 찾다 new 눈부신백마법사86 2026.10.05 1
2602 응용 프로그래밍 골든타워 010 2817 0845 골타문의 편하게 알아보는 셔츠룸 new 속삭이는미노타우르93 2026.10.05 2
2601 u-E(TestBed) 특별한 기념품제작, 판촉물365 new 광기의태풍18 2026.10.05 1
2600 건강 대전누수 문제, 청년연합누수가 답이다 new 몽환적인삵34 2026.10.05 2
2599 u-E(법,정책) 양산싱크대막힘, 뚫자하수구에서 한 번에 해결 new 낙관적인유니콘42 2026.10.05 1
2598 가상화 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기 new 희미한홍학99 2026.10.05 3
2597 웹서버,WAS 카­톡 gusim8003 급전/내구제 (24시문의) 선불폰 소액결제 일수 급전대출 new 황금빛섬광82 2026.10.05 2
2596 웹광고 해외선물 메타5 거래소와 GFS컴퍼니의 장점과 고려사항 new 울리는이구아나69 2026.10.05 2
2595 데이터베이스 흥신소 선택 가이드 new 흔들리는골렘32 2026.10.05 2
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 131 Next
/ 131


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너