2015년 1월 3일 토요일

php 간단 일기장 - php 와 데이터베이스 연결

이 문서는 지속적으로 갱신되는 내용을 다룹니다.
최신 버전의 문서는 언제든지 http://crealnet.blogspot.kr에서 얻을 수 있습니다.
문서가 업데이트 될 때마다 이메일로 받아보고 싶으시다면 http://crealnet.blogspot.kr/p/pdf.html 를 사용해 주세요.
기타 추가적으로 필요하신 사항은 http://crealnet.blogspot.kr/p/blog-page.html에서 연락주시면 됩니다.
읽어주셔서 감사합니다!


php 간단 일기장 - php 와 데이터베이스 연결



여기서는 php4 버전 기준으로 설명한다.
php4 는 mysql_connect 를,
php5 는 mysqli_connect 사용함.

웹서버와 데이터베이스 서버는 각각 서로 다른 프로그램이기 때문에, 서로 통신할 수 있는 방법이 필요하다.

따라서 php가 실행되는 웹서버에서는 데이터베이스 서버에 질의를 할 때

    데이터베이스와 연결을 하고
    데이터베이스에 명령을 내리고
    결과를 받는다.

이때 데이터베이스에 연결하기 위해서는

    어떤 데이터베이스 서버에 : host
    데이터베이스에 질의를 할 수 있는 권한 확인을 위한 나의 이름 : user
    데이터베이스에 질의를 할 수 있는 내비밀번호 : passwd
    어떤 데이터베이스 종류에 : db

라는 정보가 필요하다.


코드
<?php
$db_host = "localhost"; 
$db_user = "php111";
$db_passwd = "php111"; 
$db_name = "phpdiary"; 

$conn = mysql_connect($db_host,$db_user,$db_passwd) or die ("데이터베이스 연결에 실패하였습니다!");

mysql_select_db($db_name, $conn); 

mysql_query("set names utf8");

?>
 
코드설명 
localhost 는 웹서버가 있는 컴퓨터를 뜻한다. 따라서 localhost 라고 지정하면 웹서버와 데이터베이스 서버가 같은 컴퓨터라는 의미이다.

$conn = mysql_connect($db_host,$db_user,$db_passwd)
을 풀어쓰면
mysql에 연결해. (mysql_connect) 데이터베이스 서버는 웹서버와 같은 곳에 있어. (localhost)
내 이름은 php111 이야 비밀번호는 php111 이야.
가 된다.


or die ("데이터베이스 연결에 실패하였습니다!");
는 데이터베이스 접속에 실패했을 경우, 데이터베이스에서 값을 가져와서 보여주거나 하는 것을 할 수가 없기 때문에 그대로 접속을 종료한다는 의미이다.


일단 데이터베이스 시스템과 연결이 되고 나면 어떤 데이터베이스와 연결할 지 데이터베이스 시스템에 알려줄 필요가 있다.
이 역할을 하는 것이 mysql_select_db 이다.



mysql_query("set names utf8");

php 와 데이터베이스를 연결할 때 어떤 character set 을 사용할 것인지 나타낸다.
Database 를 만들때, 소스파일 txt 인코딩, html 의 인코딩을 모두 utf-8 로 지정했으므로 utf-8 로 설정하면 된다.
주의할 점은 utf-8 이 아니라 하이픈이 빠진 utf8 이라는 것이다.

댓글 없음:

댓글 쓰기