728x90

PDO에서 NULL 값을 반환하는 것이 Legacy PHP 와 약간 달라서 주의가 필요해서 적어둔다.

 

<?php
class adminClass extends DBDataClass {
 
    function BldTypeNMFromID($codeID){
        $sql = "select codeNM from bldingTypeNM where codeID=?";
        $params = array($codeID);
        $stmt = $this->db->prepare($sql);
        $stmt->execute($params);
        if($row = $stmt->fetch()){
            return $row[0];
        }
    }
 
    function BldTypeIDFromNM($codeNM){
        if(strlen($codeNM< 1return 2// 값이 없으면, 2번 코드 반환
        $sql = "select codeID from bldingTypeNM where codeNM=?";
        $params = array($codeNM);
        $stmt = $this->db->prepare($sql);
        $stmt->execute($params);
        if($row = $stmt->fetch()){
            return $row[0];
        } else { // NULL 인 경우, 신규 추가 및 신규 추가한 코드 반환
            $this->putBldTypeIDFromNM($codeNM);
            return $this->maxBldTypeID();
        }
    }
 
    function putBldTypeIDFromNM($codeNM) {
        if($this->isBldTypeID($codeNM== 0){
            $sort = $this->maxBldTypeID();
            $sort = (int)$sort + 1;
            $sql = "INSERT INTO bldingTypeNM (codeID, codeNM, sort) VALUES (?,?,?)";
            $params = array($sort,$codeNM,$sort);
            $stmt = $this->db->prepare($sql);
            $stmt->execute($params);
        } 
 
    }
 
    function maxBldTypeID(){
        $sql = "select max(codeID) FROM bldingTypeNM";
        $stmt = $this->db->prepare($sql);
        $stmt->execute();
        if($row = $stmt->fetch()){
            return $row[0];
        }
    }
 
    function isBldTypeID($codeNM){ 
        $sql = "select count(*) FROM bldingTypeNM WHERE codeNM=?";
        $params = array($codeNM);
        $stmt = $this->db->prepare($sql);
        $stmt->execute($params);
        if($row = $stmt->fetch()){
            return $row[0];
        } else {
            return 0;
        }
    }
 
    function BldTypeMNArray(){
        $sql="SELECT * from bldingTypeNM order by sort ASC";
        $stmt = $this->db->prepare($sql);
        $stmt->execute();
        while($row = $stmt->fetch()){
            $charge[$row[0]]=$row[1];
        }
        return $charge;
    }
}
 
?>

 

테이블 구조

CREATE TABLE `bldingTypeNM` (
  `codeID` int(10UNSIGNED NOT NULL DEFAULT 0,
  `codeNM` varchar(40DEFAULT NULL,
  `sort` int(3NOT NULL DEFAULT 1
ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
ALTER TABLE `bldingTypeNM`
  ADD PRIMARY KEY (`codeID`);
 

 

블로그 이미지

Link2Me

,