> 백엔드 개발 > PHP 튜토리얼 > PHP는 PDO의 mysql 데이터베이스 작업 class_php 기술을 구현합니다.

PHP는 PDO의 mysql 데이터베이스 작업 class_php 기술을 구현합니다.

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-05-16 20:28:28
원래의
1119명이 탐색했습니다.

이 기사의 예에서는 PHP에서 PDO를 구현하는 mysql 데이터베이스 작업 클래스를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

dbconfig 클래스는 서버 주소, 포트, 데이터베이스 인스턴스 이름, 사용자 이름, 사용자 비밀번호, 문자 집합 등을 포함한 데이터베이스 액세스 정보 구성을 담당합니다.

dbtemplate 클래스는 주로 다음 작업을 포함하는 데이터베이스 액세스 작업을 수집합니다.

1. queryrows: 여러 레코드 행 반환

2. queryrow: 단일 레코드를 반환합니다

3. queryforint: 단일 필드를 쿼리하고 정수를 반환합니다.

4. queryforfloat: 단일 필드를 쿼리하고 부동 소수점 숫자(float)를 반환합니다.

5. queryfordouble: 단일 필드를 쿼리하고 부동 소수점 숫자(double)를 반환합니다.

6. queryforobject: 단일 필드를 쿼리하고 객체를 반환합니다.

7. 업데이트: 업데이트 문을 실행합니다.

구체적인 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
클래스 dbconfig {
    개인 정적 $dbms = "mysql";
    개인 정적 $host = '127.0.0.1';
    개인 정적 $port = '3306';
    개인 정적 $username = '';
    개인 정적 $password = '';
    개인 정적 $dbname = '';
    개인 정적 $charset = 'utf-8';
    개인 정적 $dsn;
 
    /**
* *
* @return pdo dsn 구성 반환
​​*/
    공개 정적 함수 getdsn() {
        if (!isset(self::$dsn)) {
            self::$dsn = self::$dbms . ':호스트=' . 자기::$호스트 . ';포트=' .
                    self::$포트 . ';DB이름=' . 자기::$db이름;
            if (strlen(self::$charset) > 0) {
                self::$dsn = self::$dsn . ';문자세트=' . 자기::$charset;
            }
        }
        return self::$dsn;
    }
 
    /**
* * mysql 데이터베이스 서버 호스트 설정
* @param $host 호스트의 IP 주소
​​*/
    공개 정적 함수 sethost($host) {
        if (isset($host) && strlen($host) > 0)
            self::$host = 트림($host);
    }
 
    /**
* *mysql 데이터베이스 서버의 포트 설정
* @param $port 포트
​​*/
    공개 정적 함수 setport($port) {
        if (isset($port) && strlen($port) > 0)
            self::$port = 트림($port);
    }
 
    /**
* * mysql 데이터베이스 서버의 로그인 사용자 이름 설정
* @param $사용자 이름
​​*/
    공개 정적 함수 setusername($username) {
        if (isset($username) && strlen($username) > 0)
            self::$username = $username;
    }
 
    /**
* *mysql 데이터베이스 서버의 로그인 비밀번호를 설정하세요
* @param $password
​​*/
    공개 정적 함수 setpassword($password) {
        if (isset($password) && strlen($password) > 0)
            자기::$password = $password;
    }
 
    /**
* * mysql 데이터베이스 서버의 데이터베이스 인스턴스 이름을 설정합니다
* @param $dbname 데이터베이스 인스턴스 이름
​​*/
    공개 정적 함수 setdbname($dbname) {
        if (isset($dbname) && strlen($dbname) > 0)
            self::$dbname = $dbname;
    }
 
    /**
* 데이터베이스 인코딩 설정
* @param $charset
​​*/
    공개 정적 함수 setcharset($charset) {
        if (isset($charset) && strlen($charset) > 0)
            self::$charset = $charset;
    }
 
}
 
/**
* 데이터베이스 운영 도구 클래스
*
* @author zhjiun@gmail.com
​*/
클래스 DB템플릿 {
 
    /**
     * 返回多行记录
     * @param  $sql
     * @param  $매개변수
     * @return  记录数据
     */
    공용 함수 queryrows($sql, $parameters = null) {
        return $this->exequery($sql, $parameters);
    }
 
    /**
* 단일 레코드로 반환
* @param $sql
* @param $매개변수
* @return
​​*/
    공용 함수 queryrow($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            $rs[0] 반환;
        } 다른 {
            null을 반환;
        }
    }
 
    /**
* 단일 필드를 쿼리하고 정수를 반환합니다.
* @param $sql
* @param $매개변수
* @return
​​*/
    공용 함수 queryforint($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return intval($rs[0][0]);
        } 다른 {
            null을 반환;
        }
    }
 
    /**
* 단일 필드를 쿼리하고 부동 소수점 숫자(float)를 반환합니다.
* @param $sql
* @param $매개변수
* @return
​​*/
    공개 함수 queryforfloat($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return floatval($rs[0][0]);
        } 다른 {
            null을 반환;
        }
    }
 
    /**
* 단일 필드를 쿼리하고 부동 소수점 숫자(이중)를 반환합니다.
* @param $sql
* @param $매개변수
* @return
​​*/
    공용 함수 queryfordouble($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return doubleval($rs[0][0]);
        } 다른 {
            null을 반환;
        }
    }
 
    /**
* 단일 필드를 쿼리하고 객체를 반환합니다. 실제 유형은 데이터베이스에 의해 결정됩니다.
* @param $sql
* @param $매개변수
* @return
​​*/
    공용 함수 queryforobject($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            $rs[0][0] 반환;
        } 다른 {
            null을 반환;
        }
    }
 
    /**
     * 执行一条更新语句.삽입 / 업데이트 / 삭제
     * @param  $sql
     * @param  $매개변수
     * @return  影响行数
     */
    공용 함수 업데이트($sql, $parameters = null) {
        return $this->exeupdate($sql, $parameters);
    }
 
    개인 함수 getconnection() {
        $conn = new pdo(dbconfig::getdsn(), dbconfig::getusername(), dbconfig::getpassword());
        $conn->setattribute(pdo::attr_case, pdo::case_upper);
        $conn 반환;
    }
 
    개인 함수 exequery($sql, $parameters = null) {
        $conn = $this->getconnection();
        $stmt = $conn->prepare($sql);
        $stmt->execute($parameters);
        $rs = $stmt->fetchall();
        $stmt = null;
        $콘 = 널;
        $rs를 반환합니다.
    }
 
    개인 함수 exeupdate($sql, $parameters = null) {
        $conn = $this->getconnection();
        $stmt = $conn->prepare($sql);
        $stmt->execute($parameters);
        $affectedrows = $stmt->rowcount();
        $stmt = null;
        $콘 = 널;
        $영향을 받은 행을 반환합니다.
    }
}

pdo始于php5,php6中将默认使사용pdo, 이전에는 본중추적 방식과 동일하지 않습니다. 최고의 성능, 본工具类就是基于pdo,模拟了javaworldsspring框架中的jdbctemplate가 제작되었습니다.

希望本文所述对大家的PHP程序设计有所帮助。

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿