php pdo 封装mysql 增删改查代码

php pdo 封装mysql 增删改查代码

代码实例qingyu2020-09-14 17:20:201399A+A-
<?php
/**
 * PDO数据库操作函数库
 */

/**
 * 数据库连接
 * @param $db
 * @return PDO
 */
function connect( $db )
{
	$dsn = "{$db['type']}:host={$db['host']}; dbname={$db['name']}; charset={$db['charset']}; port={$db['port']}";//数据源
	try {
		//实例化PDO类,创建PDO对象
		$pdo = new PDO($dsn, $db['user'], $db['pass']);
	} catch (PDOException $e) {
		die('数据库错误:'.$e->getMessage());
	}
	return $pdo;
}
/**
 * 查询多条记录
 * @param $db
 * @param $table
 * @param $fields
 * @param string $where
 * @return array
 */
function select($db,$table,$fields, $where='', $order='',$limit='') {
	//连接pdo
	$pdo = connect($db);
	//创建SQL语句
	$sql = 'SELECT ';
	if (is_array($fields)) {
		foreach ($fields as $field) {
			$sql .= $field.', ';
		}
	} else {
		$sql .= $fields;
	}
	$sql = rtrim(trim($sql),',');
	$sql .= '  FROM '.$table;
	//添加查询条件
	if(is_array($where)){
		$sql .= ' WHERE ';
		foreach($where as $k=>$v){
			$sql .= $k.'="'.$v.'" ,';
		}
	}
	//去掉尾部逗号,并添加分号结束
	$sql = rtrim(trim($sql),',');
	//添加排序条件
	if(!empty($order)) {
		$sql .= ' order by '.$order;
	}
	//添加分页条件
	if(!empty($limit)) {
		$sql .= ' limit '.$limit;
	}
	$sql .= ';';
	//创建PDO预处理对象
	$stmt = $pdo->prepare($sql);
	//执行查询操作
	if($stmt->execute()){
		if($stmt->rowCount()>0){
			$stmt->setFetchMode(PDO::FETCH_ASSOC);
			//返回一个二维数组
			return $stmt->fetchAll();
		}
	} else {
		return false;
	}
}
/**
 * 查询单条记录
 * @param $db
 * @param $table
 * @param $fields
 * @param string $where
 * @return array
 */
function find($db,$table,$fields, $where='') {
	//连接pdo
	$pdo = connect($db);
	//创建SQL语句
	$sql = 'SELECT ';
	if (is_array($fields)) {
		foreach ($fields as $field) {
			$sql .= $field.', ';
		}
	} else {
		$sql .= $fields;
	}
	$sql = rtrim(trim($sql),',');
	$sql .= ' FROM '.$table;
	//添加查询条件
	if(is_array($where)){
		$sql .= ' WHERE ';
		foreach($where as $k=>$v){
			$sql .= $k.'="'.$v.'" ,';
		}
	}
	//去掉尾部逗号,并添加分号结束
	$sql = rtrim(trim($sql),',');
	$sql .= ' LIMIT 1;';
	//创建PDO预处理对象
	$stmt = $pdo->prepare($sql);
	//执行查询操作
	if($stmt->execute()){
		if($stmt->rowCount()>0){
			$stmt->setFetchMode(PDO::FETCH_ASSOC);
			return $stmt->fetch();
		}
	} else {
		return false;
	}
}
/**
 * 新增数据
 * @param $db
 * @param $table
 * @param $data
 * @return bool
 */
function insert($db, $table, $data=[]){
	//连接pdo
	$pdo = connect($db);
	//创建SQL语句
	$sql = "INSERT INTO {$table} SET ";
	//组装插入语句
	if(is_array($data)){
		foreach ($data as $k=>$v) {
			$sql .= $k.'="'.$v.'", ';
		}
	}else{
		return false;
	}
	//去掉尾部逗号,并添加分号结束
	$sql = rtrim(trim($sql),',').';';
	//创建PDO预处理对象
	$stmt = $pdo->prepare($sql);
	//执行新增操作
	if($stmt->execute()){
		if($stmt->rowCount()>0){
			return true;
		}
	} else {
		return false;
	}
}
/**
 * 更新数据
 * @param $db
 * @param $table
 * @param $data
 * @return bool
 */
function update($db,$table,$data=[], $where='') {
	//连接pdo
	$pdo = connect($db);
	//创建SQL语句
	$sql = "UPDATE {$table} SET ";
	//组装修改语句
	if(is_array($data)){
		foreach ($data as $k=>$v) {
			$sql .= $k.'="'.$v.'", ';
		}
	}
	//去掉尾部逗号,并添加分号结束
	$sql = rtrim(trim($sql),',');
	//更新条件
	if(is_array($where)){
		$sql .= ' WHERE ';
		foreach ($where as $w_k=>$w_v) {
			$sql .= $w_k.'="'.$w_v.'", ';
		}
	}else{
		return false;
	}
	//去掉尾部逗号,并添加分号结束
	$sql = rtrim(trim($sql),',').';';
	//创建PDO预处理对象
	$stmt = $pdo->prepare($sql);
	//执行新增操作
	if($stmt->execute()){
		if($stmt->rowCount()>0){
			return true;
		}
	} else {
		return false;
	}
}
/**
 * 删除记录
 * @param $db
 * @param $table
 * @param string $where
 * @return bool
 */
function delete($db,$table,$where=''){
	//连接pdo
	$pdo = connect($db);
	//创建SQL语句
	$sql = "DELETE FROM {$table}  ";
	//删除条件
	if(is_array($where)){
		$sql .= ' WHERE ';
		foreach ($where as $k=>$v) {
			$sql .= $k.'="'.$v.'", ';
		}
	}else{
		return false;
	}
	//去掉尾部逗号,并添加分号结束
	$sql = rtrim(trim($sql),',').';';

	//创建PDO预处理对象
	$stmt = $pdo->prepare($sql);

	//执行删除操作
	if($stmt->execute()){
		if($stmt->rowCount()>0){
			return true;
		}
	} else {
		return false;
	}
}
/**
 * 统计数量
 * @param $pdo
 * @param $table
 * @param string $where
 * @return number
 */
function count_number($db,$table,$where){
	//连接pdo
	$pdo = connect($db);
	//创建SQL语句
	$sql  = 'SELECT count(*) as count_number FROM '.$table;
	if(is_array($where)){
		$sql .= ' WHERE ';
		foreach ($where as $k=>$v) {
			$sql .= $k.'="'.$v.'", ';
		}
	}
	//去掉尾部逗号,并添加分号结束
	$sql = rtrim(trim($sql),',').';';
	//创建PDO预处理对象
	$stmt = $pdo->prepare($sql);
	//执行查询操作
	if($stmt->execute()){
		if($stmt->rowCount()>0){
			$row  = $stmt->fetch(PDO::FETCH_ASSOC);
			$rows = $row['count_number'];
			return $rows;
		}
	} else {
		return false;
	}
}
点击这里复制本文地址 欢迎来到大黄鸡源码分享网
qrcode

大黄鸡源码编程网 © All Rights Reserved.  
网站备案号:闽ICP备18012015号-4
Powered by Z-BlogPHP
联系我们| 关于我们| 广告联系| 网站管理