2009년 9월 29일 화요일

PHP와 DB(mySQL)의 연결 방법

=====================================================================
1 번째. 먼저 MySQL에서 'php_exam'이라는 database 를 하나 만든다.
=====================================================================
mysql> create database php_exam;
Query OK, 1 row affected (0.06 sec)

mysql> show databases;
+----------+
| Database |
+----------+
| company  |
| mysql    |
| php_exam |
+----------+
3 rows in set (0.00 sec)

mysql> use php_exam;
Database changed

mysql> show tables;
Empty set (0.00 sec)



======================================================================
2번째. 웹에서 테이블을 만들수 있게 하는 php페이지를 작성한다.
======================================================================

<?php
// 1. 연결 : mysql_connect(호스트명, 아이디, 비밀번호)
$conn=mysql_connect('localhost', 'root', 'apmsetup'); //db 연결부분

     /*
     if($conn)
      echo "db연결성공";
     else
      echo "db연결 실패";
     */

// DB 선택 : mysql_select_db(해당 db명, $conn)
$db=mysql_select_db("php_exam", $conn);
if($db)
 echo "db 연결성공";
else
 echo "db 연결 실패";


// DB에 table 쿼리(query 질의).
$sql="create table php_tbl(num int, name varchar(10))";
//mysql_query($sql, $conn)  db에 질의 수행.
mysql_query($sql, $conn);
?>

// 테이블이 생성되었음을 알려주는 경고창. 물론, 쿼리와 직접적 상관은 없다;
<script>
alert("테이블 생성");
</script>



======================================================================
3번째. 웹에서 만든 테이블을 mysql에서 확인.
======================================================================

msql> show tables;
+--------------------+
| Tables_in_php_exam |
+--------------------+
| php_tbl            |
+--------------------+
1 row in set (0.00 sec)

mysql> desc php_tbl;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| num   | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)


======================================================================
4번째. 이번에는 웹에서 테이블 내용을 입력하게 하는 php 페이지 작성.
======================================================================

<?php

$host="localhost";
$user="root";
$password="apmsetup";

$conn=mysql_connect($host, $user, $password);
mysql_select_db("php_exam", $conn);

$sql="insert into php_tbl values(1, '홍길동')";
mysql_query($sql, $conn);

$sql="insert into php_tbl values(2, '루피')";
mysql_query($sql, $conn);

?>

<script>
alert("DB 입력 성공! mysql에서 확인해보세요!");
</script>



======================================================================
5번째. 웹에서 입력한 테이블 내용을 MySQL에서 확인하기.
======================================================================

mysql> select * from php_tbl;
+------+--------+
| num  | name   |
+------+--------+
|    1 | 홍길동 |
|    2 | 루피   |
+------+--------+
2 rows in set (0.02 sec)








======================================================================
special test..  내맘대로 만들어보기.
======================================================================

less..

펼쳐두기..

less..






======================================================================
6 번째. 입력된 내용을 불러와 웹상에서 확인해보기.
======================================================================
http://localhost/db_m/dbselect.php
<?php

$conn=mysql_connect('localhost', 'root', 'apmsetup');     //MySQL 접속 및 설정 저장
mysql_select_db("php_exam", $conn);            //DB 접속

$sql="select * from php_tbl";                         //test 테이블의 레코드를 모두 뽑아오기
$sql_result=mysql_query($sql, $conn);          //질의(위 내용)를 수행하라.


$count=mysql_num_rows($sql_result);          //mysql_num_rows() 함수 : 행의 개수를 세는 함수.
echo $count;     //mysql query 수행 후 반환되는 결과값을 매개변수로 받고 그 레코드의 개수를 반환

echo "<br><br>";




//mysql_result(쿼리실행결과, 행번호, 변수값) : 결과값을 행 단위로 화면에 출력해주는 함수.
/*
for($i=0; $i<$count; $i++)
{
    $num=mysql_result($sql_result, $i, num);
    $name=mysql_result($sql_result, $i, name);
   
    echo "$num : $name <br>";
}
*/



//mysql_fetch_array($sql_result) 배열 형식으로 결과값을 화면상에 출력해주는 역할..
for($i=0; $i<$count; $i++)
{
    $result_array=mysql_fetch_array($sql_result);
    echo "$result_array[num] : $result_array[name] <br>";
}

?>

실행 결과

댓글 없음:

댓글 쓰기