웹솔루션개발 22년 노하우! 해피CGI의 모든것

[해피CGI][cgimall] DBI 와 펄의 연결 - 데이타 입력방법 본문

웹프로그램밍 자료실/알짜자료 골드팁

[해피CGI][cgimall] DBI 와 펄의 연결 - 데이타 입력방법

해피CGI윤실장 2017. 4. 11. 09:21
안녕하세요. 해피CGI 웹마스터 윤영웅입니다.
1년을 미루던 차에 강좌를 시작하네요.
(1년만에 시간이 좀 나서 -_-v 켕~)

예전 DBI와 펄의 관계에 대해서 설명을 드렸습니다.
이제는 약간 실전 문제인 DBI와 펄의 연결
그리고 간단한 예제를 봅니다.
이번 강좌는 perl에서 mysql 안으로 어떻게 값을 넣는지
알아봅니다.

우선 앞으로 강좌에 쓸 테이블을 만들어보겠습니다.
아래를 참고하셔서 mysql에 자신이 사용하는 DB내에
아래 테이블을 만듭니다.
(중복이 되지 않게 조금 독특한 필드 이름을 사용했죠 ^^)

CREATE TABLE happy_hero_okok (
  number int(11) DEFAULT '0' NOT NULL auto_increment,
  name varchar(100) NOT NULL,
  email varchar(100),
  title varchar(200) NOT NULL,
  comment text NOT NULL,
  inquire int(10) DEFAULT '0' NOT NULL,
  date date DEFAULT '0000-00-00' NOT NULL,
  PRIMARY KEY (number)
);



방명록을 우선 만들어 볼 생각이니까 방명록에 맞게 최소한 간단히
테이블을 만들어 보았습니다.
number는 프라이머리키이고 자동증가
name 이름 입력할곳
email 이메일 입력할곳
title 방명록 제목 입력할곳
comment 방명록 내용입력할곳
inquire 조회수를 나타낼곳
date 글 등록일 저장할곳.
이상입니다.

http://www.happycgi.com/lecture/1127test.cgi
위 주소는 테스트주소입니다.

아래는 소스코드이고 압축파일로도 받을수 있습니다.


#!/usr/bin/perl
#########################################################
use DBI; #DBI란 모듈을 사용한다고 선언합니다.
$database = "yourDBname"; #자신의 DB명
$hostname = "localhost";  #mysql 호스트 위치
$dsn = "DBI:mysql:database=$database;host=$hostname";
$user = "mysqlid"; #mysql 아이디
$pw = "mysqlpass";  #mysql 패스워드
$dbh = DBI->connect("$dsn", "$user", "$pw");
$table_name = "happy_hero_okok"; #사용할 테이블명
#########################################################
# 임시로 값을 일단 줍니다.
# 오늘은 입력만 테스트하구요.
#

$name = "테스트중";
$email = 'webmaster@happycgi.com';
$title = "테스트제목";
$comment = "내용입니다.\n 잘되나요?";
$inquire = "0";

print "content-type:text/html\n\n";
# 아래 구문은 가장 많이 쓰는 구문입니다.
# do를 잘 안쓰시는 분도 있다던데
# 제가 보기엔 제일 편한것 같아서 말이죠. ^^
# 통째로 그냥 외우세요.


$sth = $dbh->do ("insert into $table_name values('','$name','$email','$title','$comment','$inquire',curdate()) ") or die print "$DBI::errstr
DB 접속에러";

# $DBI::errstrt 이 무엇이냐면
# dbh에서 던져준 명령에 문제가 있을때 그 문제점을 출력해줍니다.
# or die 문은 아시죠. 안되면 스톱해라..

print "잘 등록되었네요. ^^";

# 등록이 잘 되었으면 print 문으로 가서 잘 등록되었다고 출력하겠죠?



오늘은 요까지 입니다.
아주 간단한 소스죠?
웹상에 호출을 하면 무조건 DB가 저장됩니다.
(당연하지만 ... -_-;;;)
저장되었나 mysql에서 직접 확인을 해보구요.

특히 아래 문장

#!/usr/bin/perl
#########################################################
use DBI; #DBI란 모듈을 사용한다고 선언합니다.
$database = "yourDBname"; #자신의 DB명
$hostname = "localhost";  #mysql 호스트 위치
$dsn = "DBI:mysql:database=$database;host=$hostname";
$user = "mysqlid"; #mysql 아이디
$pw = "mysqlpass";  #mysql 패스워드
$dbh = DBI->connect("$dsn", "$user", "$pw");
$table_name = "happy_hero_okok"; #사용할 테이블명
#########################################################

은 매번 쓰일것이니 자주 복사해서 쓸겁니다.
암기 하세요. (저는 그냥 계속 복사해서 씁니다. 우째 외워...-_-;;;)


다음 강좌는 입력된 정보를 불러오는 부분을 하겠습니다.
이제 방명록 작업 시작이 되었네요. ^^

즐 perl 하세요.
좋은 하루되시구요.

추신 : 편집기는 아래꺼를 써보세요.
http://www.happycgi.com/detail.cgi?number=4374&p=1

 

홈페이지바로가기 

Comments