博主信息
forever浅笑
博文
22
粉丝
1
评论
1
访问量
12690
积分:0
P豆:214

pdo数据库常用操作函数

2018年05月02日 15:10:23阅读数:717博客 / forever浅笑/ php

实例

<?php
/**
 * PDO数据库操作函数库
 */
if (!function_exists("connect")) {
	/**
	 * 数据库连接
	 * @param type $dbname
	 * @param type $type
	 * @param type $host
	 * @param type $charset
	 * @param type $port
	 * @param string $user
	 * @param string $pass
	 */
	function connect($dbname, $type = 'mysql', $host = '127.0.0.1', $charset = 'utf8', $port = '3306', $user = 'root', $pass = 'root') {
		$dsn = "{$type}:host={$host};dbname={$dbname};charset={$charset};port={$port}";
		$user = $user;
		$pass = $pass;
		$options = [
			PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //错误模式
			PDO::ATTR_CASE => PDO::CASE_NATURAL, // 自然名称
			PDO::ATTR_EMULATE_PREPARES => true, // 启用模拟功能
			PDO::ATTR_PERSISTENT => true,
		];
		try {
			$pdo = new PDO($dsn, $user, $pass, $options);
//			echo 'connect ok!';
		} catch (PDOException $e) {
			print '连接错误' . $e->getMessage();
			die();
		}
		return $pdo;
	}

}

if (!function_exists("insert")) {

	/**
	 * 新增数据
	 * @param type $pdo
	 * @param type $tabname
	 * @param type $data
	 */
	function insert($pdo, $tabname, $data = []) {
		// insert news set title = :title, content = :content;
		$sql = "insert ignore {$tabname} set ";
		foreach (array_keys($data) as $v) {
			$sql .= $v . ' =:' . $v . ', ';
		}
		$sql = rtrim(trim($sql), ',');
//		die($sql);
		$stmt = $pdo->prepare($sql);
		foreach ($data as $k => $v) {
			$stmt->bindValue(":{$k}", $v);
		}
		if ($stmt->execute()) {
			if ($stmt->rowCount() > 0) {
				return true;
			}
		} else {
			return false;
		}
	}

}

if (!function_exists("update")) {

	/**
	 * 更新数据
	 * @param type $pdo
	 * @param type $tabname
	 * @param type $data
	 * @param type $where
	 */
	function update($pdo, $tabname, $data = [], $where = '') {
		// update news set title = :title, content = :content where id = 1
		$sql = "update $tabname set ";
		foreach (array_keys($data) as $v) {
			$sql .= $v . " = :" . $v . ', ';
		}
		$sql = rtrim(trim($sql), ',');
		if (!empty($where)) {
			$sql .= " where " . $where;
		} else {
			exit('条件不能为空');
		}
		$stmt = $pdo->prepare($sql);
		foreach ($data as $k => $v) {
			$stmt->bindValue(":{$k}", $v);
		}
		if ($stmt->execute()) {
			if ($stmt->rowCount() > 0) {
				return true;
			}
		} else {
			return false;
		}
	}

}

if (!function_exists("find")) {
	/**
	 * 查询单条记录
	 * @param type $pdo
	 * @param type $tabname
	 * @param type $fields
	 * @param type $where
	 */
	function find($pdo, $tabname, $fields, $where = '') {
		$sql = "select ";
		if (is_array($fields)) {
			foreach ($fields as $v) {
				$sql .= $v . ',';
			}
		} else {
			$sql .= $fields . ',';
		}
		$sql = rtrim(trim($sql), ',');
		$sql .= " from $tabname ";
		if (!empty($where)) {
			$sql .= " where " . $where;
		}
		$sql .= ' limit 1';
		$stmt = $pdo->prepare($sql);
		if ($stmt->execute()) {
			if ($stmt->rowCount() > 0) {
//				$stmt->setFetchMode(PDO::FETCH_ASSOC);
				return $stmt->fetch(PDO::FETCH_ASSOC);
			}
		} else {
			return false;
		}
	}

}

if (!function_exists("select")) {
	/**
	 * 查询多条记录
	 * @param type $pdo
	 * @param type $tabname
	 * @param type $fields
	 * @param type $where
	 * @param type $order
	 * @return boolean
	 */
	function select($pdo, $tabname, $fields, $where = '', $order = '') {
		$sql = "select ";
		if (is_array($fields)) {
			foreach ($fields as $v) {
				$sql .= $v . ',';
			}
		} else {
			$sql .= $fields . ',';
		}
		$sql = rtrim(trim($sql), ',');
		$sql .= " from $tabname ";
		if (!empty($where)) {
			$sql .= " where " . $where;
		}
		if (!empty($order)) {
			$sql .= " order by " . $order;
		}
		$stmt = $pdo->prepare($sql);
//		die($stmt->queryString);  查看sql语句
		if ($stmt->execute()) {
			if ($stmt->rowCount() > 0) {
//				$stmt->setFetchMode(PDO::FETCH_ASSOC);
				return $stmt->fetchAll(PDO::FETCH_ASSOC);
			}
		} else {
			return false;
		}
	}
}

if (!function_exists("delete")) {
	/**
	 * 删除一条记录
	 * @param type $pdo
	 * @param type $tabname
	 * @param type $where
	 */
	function delete($pdo, $tabname, $where) {
		$sql = "delete from $tabname ";
		if (!empty($where)) {
			$sql .= "where " . $where;
		} else {
			exit('条件不能为空');
		}
		$stmt = $pdo->prepare($sql);
		if ($stmt->execute()){
			if ($stmt->rowCount() > 0){
				return true;
			}
		} else {
			return false;
		}
	}
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


批改状态:合格

老师批语:

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 于实现各种的软件是:管理系统;管理系统能直接中的
    access教程:本文为大家介绍了利ADO技术access的方法,具有一定的参考价值,希望可以帮助到大家。
    Mysql设置户指定ip地址的方法:使grant,语法为【grant priv_type on mysql.user to 'user'@'host' identified by 'password
    navicat教程:本文为大家分享了使navicat克隆,具有一定的参考价值,希望能对大家有所帮助。
    ,本文继续给大家介绍如何PHP进行类有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
    上篇文章给大家介绍了《PHP中try...case语法如何使?》,本文继续给大家介绍PHP中什么是pdo?访问有什么优点?扩展的是什么?
    PHP中我们经需要连接,之前对一般使mysqli的连接方式,但是随着PDO的优势逐渐显现,PDO的连接方式成为主流,本文就带大家一起来看一看在使PDO连接后,如何利query
    PHP中连接是较为日,但是中的一般都比较重要,为了避免误的完整性破坏,所以我们利了rollBack()方法,避免了一些误,本文就带大家一起来看一看PDO::rollBack
    事务是SQL中较为见的使,PHP也需要连接,所以需要兼容SQL的一些,在PDO的连接方式中,PHP提供commit()的使,本文就带大家一起来看一看。
    PHP中我们经需要连接,对进行增、删、改、查,之前对一般使mysqli的连接方式,但是随着PDO的优势逐渐显现,PDO的连接方式成为主流,本文就带大家一起来看一看,利PDO连接后返回的
    的管理分为写和查询。写,即利PDO实现增删改过程中要考虑到SQL本身可能出现的错误处理,以及对结果的处理。
    PHP中利PDO连接属于基本,利PDO连接后,获取的是Statement类型的对象,我们可以利setAttribute() 方法可以来设置句柄的属性,本文就带大家一起来看一看
    php中MySQL、MySQLi、PDO的区别有:1、mysql是非持继连接而mysqli是永远连接;2、mysqli是php5提供的新,【i】表示改进,其执行速度更快,更安全;3、PDO
    在php中,pdo是PHP为访问定义的一个轻量级的、一致性的接口;它提供了一个访问抽象层,这样无论你使什么,都可以通过同一执行查询和获取,大大简化了,并能够屏蔽不同之间的差异
    php查询的方法:1、使【mysql_connect()】建立和MYSQL的连接;2、使【mysql_select_db()】指定要;3、使【mysql_query
    事务是SQL中较为见的使,在日中,我们经需要对进行增删改,对进行难免会出现问题,为避免这种较大的错误,PHP提供beginTransaction,本文就带大家一起来看一看
    pythonaccess的方法就是使pyodbc
    PHP中经需要对中的进行查询,PDO是现下较为主流的连接方式,PDO::fetch()是PDO中查询的主要方法,本文就带大家一起来看一看如何使fetch()方法。
    在现代化的开发中,一般使框架都会让我们忽视了底层的这些封装,而且大部分框架都已经默认是使PDO来进行,那么大家知道PDO是如何关闭的连接的呢?
    这篇文章主要介绍了【php+pdo】实现的购物车类,结合完整实例形式分析了PHP结合pdo读写实现购物车功能相关实现与使方法,需要的朋友可以参考下。