1. 2007.10.05 Class DB Connection
  2. 2007.10.05 PHP에서 자바 클래스 호출

Class DB Connection

<?php

class Mysql {
    var $szHost;        // 호스트
    var $szUser;        // 사용자
    var $szPassword;    // 비밀번호
    var $szDataBase;    // 데이터베이스
    var $resConn;       // 연결 핸들
    var $resQuery;      // 쿼리 핸들
    var $szQuery;       // 쿼리문

    # 생성자
    function Mysql($szHost, $szUser, $szPassword) {
        $this->szHost       = $szHost;
        $this->szUser       = $szUser;
        $this->szPassword   = $szPassword;
    }

    # 연결
    function connect() {
        $this->resConn = @mysql_connect($this->szHost, $this->szUser, $this->szPassword) or die ("DB 연결에 실패하였습니다");
    }

    # DB 선택
    function selectDB($szDataBase = NULL) {
        if (isset($szDataBase)) {
            $this->szDataBase = $szDataBase;
        }

        @mysql_select_db($this->szDataBase, $this->resConn) or die ($this->szDataBase . " 데이터베이스가 존재하지 않거나 접근권한이 없습니다.");
    }

    # 쿼리를 실행한다
    function &query($szQuery) {
        $this->szQuery  = $szQuery;
        $this->resQuery = @mysql_query($this->szQuery, $this->resConn);

        if ($this->resQuery) {
            return $this->resQuery;
        } else {
            echo 'DB가 에러가 났습니다.';
            echo "
"; echo mysql_error(); echo "
"; echo $this->szQuery; echo '
'; } } # 쿼리문을 리턴 function getQuery() { return $this->szQuery; } function &select($szTable, $szField = '*', $szWhere = NULL, $szOrderBy = NULL, $nCount = NULL, $nStart = NULL) { $szQuery = "SELECT $szField FROM $szTable"; if (isset($szWhere)) { $szQuery .= " WHERE $szWhere"; } if (isset($szOrderBy)) { $szQuery .= " $szOrderBy"; } if (isset($nStart)) { $szQuery .= " LIMIT $nStart, $nCount"; } else if (isset($nCount)) { $szQuery .= " LIMIT $nCount"; } return $this->query($szQuery); } function &slt($szTable, $szField = '*', $szWhere = NULL, $szOrderBy = NULL, $nCount = NULL, $nStart = NULL) { $szQuery = "SELECT $szField FROM $szTable"; if (isset($szWhere)) { $szQuery .= " WHERE $szWhere"; } if (isset($szOrderBy)) { $szQuery .= " $szOrderBy"; } if (isset($nStart)) { $szQuery .= " LIMIT $nStart, $nCount"; } else if (isset($nCount)) { $szQuery .= " LIMIT $nCount"; } $res = $this->query($szQuery); $rs = $this->fetch($res); return $rs; } // $const = MYSQL_NUM, MYSQL_ASSOC, and MYSQL_BOTH function &fetch($resQuery = NULL, $const = MYSQL_ASSOC) { if (!isset($resQuery)) { $resQuery = $this->resQuery; } return mysql_fetch_array($resQuery, $const); } function freeResult($resQuery = NULL) { if (!isset($resQuery)) { $resQuery = $this->resQuery; } return @mysql_free_result($resQuery); } function numRows($resQuery = NULL) { if (!isset($resQuery)) { $resQuery = $this->resQuery; } return @mysql_num_rows($resQuery); } function getCount($szTable, $szWhere = NULL, $szField = '*', $sOrder= NULL) { $szQuery = "SELECT COUNT($szField) FROM $szTable"; if (isset($szWhere)) { $szQuery .= " WHERE $szWhere"; } if ($sOrder) { $szQuery .= $sOrder; } $res = $this->query($szQuery); $rs = $this->fetch($res, MYSQL_NUM); return $rs[0]; } function getMax($szTable, $szField = '*', $szWhere = NULL) { $szQuery = "SELECT MAX($szField) FROM $szTable"; if (isset($szWhere)) { $szQuery .= " WHERE $szWhere"; } $res = $this->query($szQuery); $rs = $this->fetch($res, MYSQL_NUM); return $rs[0]; } function getMin($szTable, $szField = '*', $szWhere = NULL) { $szQuery = "SELECT MIN($szField) FROM $szTable"; if (isset($szWhere)) { $szQuery .= " WHERE $szWhere"; } $res = $this->query($szQuery); $rs = $this->fetch($res, MYSQL_NUM); return $rs[0]; } function &insert($szTable, $arrFieldValue, $bOpt = FALSE) { // 데이터 입력 $nTmp = 0; if ($bOpt) { $nSize = sizeof($arrFieldValue) - 1; foreach($arrFieldValue as $arrTmp) { $nTmp1=0; foreach($arrTmp as $szField => $szValue) { if ($nTmp==0) $szFields .= ($nTmp1==0)? $szField : ", $szField"; $szValues .= ($nTmp1 == 0)? "('$szValue'" : ", '$szValue'"; $nTmp1++; } $szValues .= ($nTmp == $nSize) ? ")" : "),"; $nTmp++; } } else { foreach($arrFieldValue as $szField => $szValue) { $szFields .= ($nTmp == 0) ? $szField : ", $szField"; $szValues .= ($nTmp == 0) ? "('$szValue'" : ", '$szValue'"; $nTmp++; } $szValues.=")"; } $szQuery = sprintf("INSERT INTO %s (%s) VALUES %s", $szTable, $szFields, $szValues); return $this->query($szQuery); } function &update($szTable, $arrFieldValue, $szWhere = NULL) { // 데이터 수정(배열을 이용) $nTmp=0; foreach ($arrFieldValue as $szField => $szValue) { $szFields .= ($nTmp==0)? "$szField='$szValue'" : ", $szField='$szValue'"; $nTmp++; } if ($szWhere) { $szWhere = "WHERE $szWhere"; } $szQuery = sprintf("UPDATE %s SET %s %s ", $szTable, $szFields, $szWhere); return $this->query($szQuery); } function &delete($szTable, $szWhere = NULL) { $szQuery = "DELETE FROM $szTable"; if (isset($szWhere)) { $szQuery .= " WHERE $szWhere"; } return $this->query($szQuery); } function dataSeek($n, $resQuery = NULL) { if (!isset($resQuery)) { $resQuery = $this->resQuery; } return mysql_data_seek($resQuery, $n); } function getLastInsertID() { $res = $this->query("SELECT LAST_INSERT_ID()"); $rs = $this->fetch($res, MYSQL_NUM); return $rs[0]; } function close() { if ($this->resConn) { @mysql_close($this->resConn); } } } ?>

'WebDevelop > PHP' 카테고리의 다른 글

XMLParser  (0) 2007.10.05
PHP에서 자바 클래스 호출  (0) 2007.10.05
XML 문서파싱 - SAX 방식 , DOM 방식  (0) 2007.10.05

PHP에서 자바 클래스 호출

당연히, PHP를 설치한다(이하, PHP 설치 폴더는 C:\PHP 이라고 가정한다).
자바도 사용하므로 자바도 설치한다(이하, Java 설치 폴더는 C:\jdk1.3.1 이라고 가정한다).

PHP.ini 파일에서 extension을 설정한다.
PHP.ini 파일에서 extensions 폴더를 설정한다.
PHP.ini 파일에서 ;extension=php_java.dll 부분의 주석(;)을 삭제한다.

 

아래를 PHP.ini 파일의 [Java] 섹션에 추가한다.
java.class.path="c:\php\extensions\php_java.jar;c:\php\extensions\java\;c:\php\extensions\java\debug.jar"
※ 밑줄 그은 부분은 자신이 만든 패키지를 호출하여 사용할 경우, 그 폴더도 함께 지정하는 것이다.
java.home="c:\jdk1.3.1\"
java.library="c:\jdk1.3.1\jre\bin\hotspot\jvm.dll"
java.library.path="c:\php\extensions"

 

PHP 소스 내에서 자바 클래스를 불러서 사용한다.
예)
OS 이름 알아내기
     $var1 = new Java('java.lang.System');

     echo $var1->getProperty('os.name'); 

결과는
Java version=1.5.0_06 Java vendor=Sun Microsystems Inc. OS=Windows 2000 5.0 on x86 금요일, 9월 07, 2007 at 2:16:42 오후 한국 표준시

 

StringBuffer 클래스 사용하기
    $strbf = new Java("java.lang.StringBuffer");$strbf->append("Hello,");$strbf->append("World.");echo $strbf->toString();

결과는 next line shows how to use of java class (StringBuffer)Hello, World.

 

내가 만든 패키지 클래스 이용하기
$calc = new Java("Calculator");$calc->a = 10;$calc->b = 20;echo $calc->add();

결과는30
참고 : 자바 소스
public class Calculator {
 public int a=0;
 public int b=0;
 
 public int add()
 {
  return a + b;
 }
}


ZIP 파일 내의 파일 목록 알아내기
아래는 viewZip이라는 자바 클래스를 작성한 후 이를 이용하는 것이다.
$z = new Java("viewZip");$z->setFile("test.zip");echo "파일갯수:" . $z->getSize();echo "<br>" . $z->getEntry();

'WebDevelop > PHP' 카테고리의 다른 글

Class DB Connection  (0) 2007.10.05
XML 문서파싱 - SAX 방식 , DOM 방식  (0) 2007.10.05
PHP란 무엇인가...  (0) 2007.09.17
Return top