이 기사의 예에서는 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程序设计有所帮助。