PHP programming

Download Report

Transcript PHP programming

PHP programming
2000년 11월 13일
데이터베이스 연구실 김호숙
목차
 PHP 란?
 A.P.M (Apache / PHP / MySQL)
 환경 접속
 PHP기본 문법
 방명록 예
 Reference
PHP 란?
 PHP Version 3.0은
 server-side HTML-embedded scripting language.
 사용자와의 상호 작용을 통해 구현되는 스크립트 언어(컴파일 없
이 실행)로 사용자가 HTML폼을 통해 입력한 값을 웹 서버 상에서
처리한 후 그 결과를 HTML과 같은 형태로 가공하여 다시 사용자
의 브라우저에 전달하는 Server측 언어.
 PHP3를 사용하면 Database를 사용한 Web page를 간단히 만들
수 있다. 다음에 나오는 DB server들을 현재 사용할 수 있다. :
Oracle, Sybase, mSQL, MySQL, Solid, ODBC,
PostgreSQL FilePro, Velocis, Informix, dBase…
 PHP는 1994년 가을 Rasmus Lerdorf가 처음 고안하였다.
처음 비 공개판은 그의 홈페이지에 사용되었고, 외부에
사용된 것은 1995년 초부터 사용되어 Personal Home
Page Tools라고 불리게 되었다. 이것은 몇 개의 특별한
매크로를 사용할 수 있는 단순한 파서(명령 해석기) 엔진
과 방명록이나 카운터 같이 홈페이지의 뒤에서 공통적으
로 사용할 수 있는 몇 개의 간단한 유틸리티로 구성되었
다.
 이 파서가 1995년 중반에 재 작성되어 PHP/FI Version 2
라고 명명되었다.
 1997년 중반 PHP는 Rasmus의 개인이 아닌 팀에 의해
개발되고 있다. 새 파서는 Zeev Suraski와 Andi
Gutmans가 재 작성되었고, PHP Version 3라는 이름으로
나타났다. 많은 PHP/FI의 기능들이 옮겨왔고, 그 외에도
많은 기능들이 새로 작성되었다.
A.P.M (Apache / PHP / MySQL)
 A.P.M 은 Apache(웹 서버) PHP(CGI언어) MySQL(데어터베이스)
를 말하며 안정적이고 빠른 DB연동 웹 서버를 꾸밀 수 있는 환경.
 MySQL 무료로 쓸 수 있게 공개된 관계형 데이터베이스로서 안정
성 및 무결성의 측면에서 상용 제품에 비해 떨어지지만 속도와 뛰
어난 수행능력 그리고 사용의 편리함 등의 장점을 갖춘 제품이다.
 처음에 MySQL은 TcX 내부에서 자체적으로 사용할 목적을 가지고
만들어졌다고 합니다. TcX는 1996년부터 MySQL을 사용해 왔으며
현재 700만 레코드 이상 되는 500개 이상의 테이블(100기가 바이
트 이상)이 주요업무에 사용되고 있다고 하니 어느 정도의 중소업
체에서도 충분히 사용할 수가 있습니다.
환경 접속





mobile.ewha.ac.kr 에 접속 (ID: mysql password: ewhacse)
$cd /usr/local/mysql/bin
$./mysql -u [ID] -p [database_name]
database_name은 사용자 아이디와 동일
예를 들어, db1이라는 사용자가 db1이라는 데이터베이스를 이용하여 작
업을 하려면  $./mysql -u db1 -p db1
 Mysql 이라는 홈 디렉토리에 public_html이란 디렉토리가 있다. 각자 이
디렉토리에 학번으로 디렉토리를 만들고 그 아래서 php 실습을 해보자.
 확장자명은 *.php3 로 하고
 브라우저에서 테스트 해 볼 때는
 http://mobile.ewha.ac.kr/~mysql/[학번]/xxx.php3으로 테스트 해 보면
됩니다.
PHP기본 문법
1.PHP code mode


<?
echo ("this is the simplest, an SGML
processing instruction\n");
?>
<?php
echo("if you want to serve XML documents, do
like this\n");
?>
 각 문장은 세미콜론(;)으로 종료.
2. 변수 형태(Types)
 PHP에서는 다음 형태의 타입을 지원하며, 이런
타입을 프로그램시 프로그래머가 선택할 필요 없
이, PHP가 실행 중에 변수의 값의 내용에 따라 자
동으로 바꾸어 준다.





정수형(integers)
실수형(floating-point numbers)
문자열(string)
배열(array)
객체(object)
3. 변수(Variable)
 변수가 선언된 곳 안에서만 유용. => 지역 변수
전역변수로 사용하려면 변수 앞에 global을 선언.
 $a = 1;
//global scope
Function Test() {
echo $a; //reference to local scope variable
}
Test();
 결과 : 빈 출력 결과!!
 $a = 1;
$b = 2;
Function Sum() {
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
 결과 : "3"이 출력
 PHP 밖에서 온 변수들(Variables from outside PHP)
 <form action="foo.php3" method="post">
Name : <input type="text" name="name"><br>
<Input type="submit">
</form>
 submit 시에 PHP는 $name변수를 만들고 name필드에
입력된 모든 내용을 저장한다.
4. 상수(Constants)
 기본적으로 제공되는 상수는 __FILE__과 __LINE__이다.
이 상수들은 현재 처리중인 파일명과 라인 번호를 내용으
로 한다.
 define()과 undefine() 함수를 사용하여 추가적인 상수를
정의할 수 있다.
Language constructs
 PHP3 스크립트는 문장(statement)의 나열로
만들어진다. 문장에는 대입문(assignment), 함
수호출(function call), 순환문(loop), 조건문
(conditional statement)등이 있다.
 문장들은 중괄호( { } )를 사용하여 하나의 복
문장 (statement-group)으로 만들 수 있다. 이
복문장은 하나의 문장처럼 사용될 수 있다.
그밖에…
 표현식
 IF / ELSE / ELSEIF
 WHILE / DO..WHILE
 FOR / SWITCH
 REQUIRE / INCLUDE
 FUNCTION
 CLASS
방명록 예
 PHP 와 mysql 을 이용해서 방명록을 만들려면 먼저
mysql 에 테이블을 만들어야 합니다.그 다음 php 로
mysql 에 연결 하는 프로그램을 짜면 됩니다.
 간단하게 이름과 내용만을 갖는 방명록을 만들어 보자.
 DB생성
mysql> create table guest (name varchar(20), content text );
mysql> show tables;
mysql> describe guest;
mysql> quit
insert.htm
<HTML>
<BODY>
<h3>방명록 쓰기 </h3>
<form method='post' action=insert.php3>
이름 :<input type='text' name='name'><p>
내용 :<textarea name='content' cols=50 rows=5></textarea>
<p>
<input type='submit' value='글쓰기'>
<input type='reset' value='지우기'><br>
</form>
</BODY></HTML>
insert.php3
<?
// mysql에 연결 한다. 계정은 dbxx 이고 비밀번호는 dbxx 이다.
$db=mysql_connect("localhost",“dbxx",“dbxx");
// mysql 에 연결 후 DB를 선택 한다
mysql_select_db(“dbxx", $db);
$dbinsert = "insert into guest values ('$name','$content')";
// DB 안에서 선택된 테이블을 쿼리한다.
$result=mysql_query($dbinsert, $db);
// 닫는다. 메모리 낭비 방지
mysql_close($db);
echo "정상적으로 저장되었습니다.<P>";
echo "<a href='./read.php3'>리스트보기</a>";
?>
read.php3
<body bgcolor=white> <P>
<font color=navy><a href=2insert.htm>방명록 쓰기 </a></font><P>
<?
$db=mysql_connect(“localhost",“dbxx",“dbxx");
mysql_select_db(“dbxx", $db);
// DB 에서 guest 테이블에서 레코드를 뽑는다.
$result=mysql_query("select * from guest", $db);
echo "방명록 읽기<P>";
// mysql_fetch_array 는 쿼리한 값을 배열에 저장 한다.
// 불려지면 값을 하나씩 증가 시키기 때문에 $row++ 이 필요없다.
while($row=mysql_fetch_array($result))
{ echo "이름:$row[name]<P>";
echo "내용:$row[content]<P>"; }
mysql_close($db);
?>
결과화면
 http://mobile.ewha.ac.kr/~mysql/hoho/insert.htm
php에서 mysql을 제어 하는 루틴
1. mysql 서버에 연결 한다. mysql_connect();
2. mysql 안의 DB 를 선택 한다. mysql_select_db();
3. mysql 안의 DB 안에 테이블에서 퀴리를 수행한다. mysql_query();
( mysql DB의 테이블에서 입력,삭제 등 쿼리 수행 )
4. 퀴리 수행 한 것을 메모리에 저장 해 둔다. php 에서 사용할 수 있
도록 메모리에 저장
mysql_result() 나 mysql_fetch_array() 사용
5. echo 나 print 를 이용해서 가져온 값을 모니터에 표시
6. mysql 서버 연결을 종료한다. mysql_close() [메모리낭비방지]
Reference
 http://www.toodul.net/ …투덜이php
 http://php.linuxsystem.co.kr/ …php
bank
 http://dblab.tnut.ac.kr/c_note/datafiles
/webdb/php.htm