$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);
?>