实用PDO MYSQL数库操作类
程序员文章站
2022-05-13 19:20:39
...
配制
<?php /*配制*/ return array ( 'DB_Default'=>'Default',//默认连接 /* 主数据 */ 'Default' => array ( 'DB_HOST' => '127.0.0.1', // 服务器地址 'DB_NAME' => '8now_invoicing', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 'DB_PREFIX' => '8now_', // 数据库表前缀 'DB_CHARSET' => 'utf8' ), // 数据库编码默认采用utf8 );
<?php /** * 数据库操作类 * @author 角度 QQ:1286522207 * */ class db { public $data_Default; private $DB_HOST; private $DB_NAME; private $DB_USER; private $DB_PWD; private $DB_PREFIX; private $DB_CHARSET; public $Limit = " LIMIT 1"; public $OrderBy; public $and; public $dbname; protected $sign = array ('=', '<>', '>', '<', '>=', '<=' ); function __construct($db) { $dbmysql = include ROOT_CONFIG . 'db.php'; $dbconfig = $dbmysql [$db]; $this->DB_HOST = $dbconfig ['DB_HOST']; $this->DB_NAME = $dbconfig ['DB_NAME']; $this->DB_USER = $dbconfig ['DB_USER']; $this->DB_PWD = $dbconfig ['DB_PWD']; $this->DB_PREFIX = $dbconfig ['DB_PREFIX']; $this->DB_CHARSET = $dbconfig ['DB_CHARSET']; } private function pdo_db() { try { return new PDO ( "mysql:host=$this->DB_HOST;dbname=$this->DB_NAME", $this->DB_USER, $this->DB_PWD, array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES '$this->DB_CHARSET'", PDO::ATTR_PERSISTENT => true ) ); } catch ( Exception $e ) { echo '数据库连接失败,详情: ' . $e->getMessage () . ' 请在/config/db.php中配制正确的数据库连接信息'; exit (); } } public function M($name) { $this->dbname = $this->DB_PREFIX . $name; } /** * 处理条件 */ public function where($where) { if (! $this->and) $this->and = ' and'; if (is_array ( $where )) { foreach ( $where as $key => $row ) { $w [] = " `$key`='$row'"; } $sql = " WHERE (" . trim ( implode ( $this->and, $w ) ) . ") "; } elseif (! $where) { return false; } else { $sql = " WHERE " . $where; } return $sql; } /** * 处理数据 */ private function date($date) { if (is_array ( $date )) { foreach ( $date as $key => $row ) { $d [] = "`" . $key . "`='" . $row . "'"; } return implode ( ',', $d ); } else { return $date; } } /** * 处理插入数据 */ public function Upvalues($date) { if (is_array ( $date )) { foreach ( $date as $key => $row ) { $k [] = "`" . $key . "`"; $r [] = "'" . $row . "'"; } $k = "(" . implode ( ',', $k ) . ")"; $r = "(" . implode ( ',', $r ) . ")"; return $k . ' VALUES ' . $r; } else { return false; } } /** * 排序 * @param 列 $Row * @param ASC or DESC$ORDER */ public function OrderBy($Row = '', $ORDER = 'DESC') { $this->OrderBy = "ORDER BY `$Row` $ORDER"; } /** * 执行查询语句 SELECT */ public function query($sql) { return empty ( $sql ) ? exit ( '必须指定SQL语句' ) : $this->pdo_db ()->query ( $sql ); } /** * 执行 INSERT、UPDATE、DELETE */ public function exec($sql) { return empty ( $sql ) ? exit ( '必须指定SQL语句' ) : $this->pdo_db ()->exec ( $sql ); } /** * 查询个数 */ public function Limit($a = NULL, $b = NULL) { $this->Limit = Filter::IntegerFilter ( $a ) && Filter::IntegerFilter ( $b ) ? " LIMIT $a,$b" : ''; } /** * 处理多个查询条件 * */ public function LIKEMultipleQueries($LIKE, $W) { $LIKE = array_filter ( explode ( ' ', trim ( $LIKE ) ) ); if (is_array ( $LIKE )) { foreach ( $LIKE as $row ) { $l [] = "`$W` LIKE '%" . trim ( $row ) . "%'"; } return '(' . implode ( ' OR ', $l ) . ')'; } } /** * 点亮关键字 */ public $SearchLightKey = array (); public function SearchLightKey($array, $q) { foreach ( $array as $s ) { foreach ( $q as $key => $row ) { $row = array_filter ( explode ( ' ', trim ( $row ) ) ); if ($s [$key]) { foreach ( $row as $r ) { $s [$key] = preg_replace ( "/(" . trim ( $r ) . ")/i", "<font style='color: #FF9900'>\\1</font>", $s [$key] ); } } } $this->SearchLightKey [] = $s; } } /**快捷操作开始**/ /** * 查询一条数据 */ public function find($where, $Row = '*') { $sql = "SELECT $Row FROM `$this->dbname` " . $this->where ( $where ) . $this->OrderBy . $this->Limit; return $this->pdo_db ()->query ( $sql )->fetch (); } /** * 查询多条数据 */ public function findAll($where, $Row = '*') { $sql = "SELECT $Row FROM `$this->dbname` " . $this->where ( $where ) . $this->OrderBy . $this->Limit; return $this->pdo_db ()->query ( $sql )->fetchAll (); } /** * 查询总数 */ public function findsum($where, $Row) { $sql = "SELECT SUM($Row) as $Row FROM `$this->dbname` " . $this->where ( $where ) . " LIMIT 1"; return $this->pdo_db ()->query ( $sql )->fetch (); } /** * 查询个数 */ public function findcount($where, $Row) { $sql = "SELECT COUNT($Row) as $Row FROM `$this->dbname` " . $this->where ( $where ) . " LIMIT 1 "; return $this->pdo_db ()->query ( $sql )->fetch (); } /** * 更新数据 */ public function update($date, $where) { $sql = "UPDATE `$this->dbname` SET " . $this->date ( $date ) . $this->where ( $where ) . ";"; return $this->pdo_db ()->exec ( $sql ); } /** * 插入数据 */ public function insert($date) { $sql = "INSERT INTO `$this->dbname` " . $this->Upvalues ( $date ) . ";"; $pdo = $this->pdo_db (); return $pdo->exec ( $sql ) ? $pdo->lastInsertId () : false; } /** * 删除数据 */ public function delete($where) { $sql = "DELETE FROM `$this->dbname` " . $this->where ( $where ) . $this->Limit . ";"; return $this->pdo_db ()->exec ( $sql ); } }
以上就是实用PDO MYSQL数库操作类的内容,更多相关内容请关注PHP中文网(www.php.cn)!