博客列表 >PDO总结-php培训五期线上班

PDO总结-php培训五期线上班

阿坚的博客
阿坚的博客原创
2019年03月26日 15:19:23899浏览

功能:

pdo来实现

1:增加,

2:删除,

3:查找,

4:更新 功能。

<?php 
	// 连接方法
	// 自定义方法,是为了重复使用,减少代码量
header('content-type:text/html;charset=utf-8');
	function con(){
		$dsn = 'mysql:host=127.0.0.1;dbname=phpzhong;charset=utf8;port=3306';
		$dsn = 'mysql:dbname=phpzhong';
		$dbname = 'root';
		$dbpw   = '123456';
		try{
			$p = new PDO($dsn,$dbname,$dbpw);
		} catch (PDOException $e) {
			print_r($e->getMessage());
			exit;
		}
		return $p;
	}
	// 查询数据
	// $table 必须传值
	// 作业 : 用PDO把增删改方法写好,可以传值
	function select($table,$field='*',$where='',$order='',$limit=''){
		// 1,连接
		$c = con();
		// 2,sql语句
		$sql = 'SELECT ';	// 组装select关键词

		// 如果返回值传值,才进行组装
		if(!empty($field)){
			$sql .= rtrim($field);		// 组装查询返回字段
		}

		$sql .= ' FROM ';	// 组装表名关键词
		$sql .= $table;		// 组装表名
		// empty 判断变量是否为空
		// ! 取反
		// !empty($where) 判断变量不为空,才会进入if
		// 判断是否传条件,传了条件进行条件组装
		if(!empty($where)){
			$sql .= ' WHERE ';	// 组装条件关键词
			$sql .= $where;		// 组装条件
		}

		// 判断排序
		if(!empty($order)){
			$sql .= ' ORDER BY ';
			$sql .= $order;
		}

		// 判断数量
		if(!empty($limit)){
			$sql .= ' LIMIT ';
			$sql .= $limit;
		}
		print_r($sql);
		// 预处理sql语句
		$a = $c->prepare($sql);
		if($a->execute()){
			// 当查询结果后,结果集是没有数据的。
			// 用rowCount方法,判断结果集是否有结果,有结果我们才返回结果
			if($a->rowCount()){
				// 5,设置模式
				$a->setFetchMode(PDO::FETCH_ASSOC);
				// 6,结果集
				$ret = $a->fetchAll();
				// 返回结果集
				return $ret;
			}else{
				return false;
			}
		}else{
			return false;
		}
	}
	$s = select('user','`id`,`username`,`age`','`age` > 40','age','1,2');
	print_r($s);

	//增加insert into
	//INSERT INTO `user` VALUES ('1', '`ximen`', '``999', null, null, null, null, null, null, '0');
	function add($table,$zhiduan,$values){
		// 1,连接
		$c = con();
		// 2,sql语句
		$sql = "INSERT INTO `$table` " ;
		$zhiduan = '('.$zhiduan.')';
		$sql .=$zhiduan;
		if (is_array($values)) {
			$vs='';
			$str='';
			foreach ($values as $v) {
				$vs.='('.$v.'),';
				$vs1=substr($vs,0,strlen($str)-1);
			}
				$sql.='VALUES'.'('.$values.')'.$vs1;
				$v=str_replace('(Array)','',$sql);
				$sql=$v;
		// echo $sql;
		}else{
			$sql .= 'VALUES'.'('.$values.')'; 
			// echo $sql;
		}
		$a = $c->prepare($sql);
		if ($a -> execute()) {
			return true;
		}else{
			return false;
		}
		// var_dump($a);
	}
	// $add = add('column','`id`,`name`',"'4','xiaowu'");
	// $add = add('column','`id`,`name`',["'11','xiaow'","'12','jjj'","'13','lakdj'"]);	
	// print_r($add);	

	//删除delelte
	//delete from <表名> [where <删除条件>]
	function delete($table,$zhiduan,$where){
		// 1,连接
		$c = con();
		// 2,sql语句
		$sql = "DELETE FROM `$table` " ;
		$sql .= ' WHERE ';	// 组装条件关键词
		if(!empty($where)){
			$sql .="$zhiduan";
			$sql .= $where;		// 组装条件
		}
		var_dump($sql);
		$a = $c->prepare($sql);
		if ($a -> execute()) {
			return true;
		}else{
			return false;
		}
	}
	// $delete=delete('column','id','=2');
	// print_r($delete);
	//更新update
	//update <表名> set <列名=更新值> [where <更新条件>]
	//$zhiduan是字段
	//
	function update($table,$zhiduan,$value,$where=''){
		//链接数据库
		$c= con();
		$sql=" UPDATE `$table` SET ";
		$sql.=" `$zhiduan` ";
		$sql.=" $value ";
		$sql.=" WHERE ";
		$sql.=" $where ";
		var_dump($sql);
		$a = $c->prepare($sql);
		if ($a -> execute()) {
			return true;
		}else{
			return false;
		}

	}
	// $update=update('column','name','=3','`id`=3');
	// print_r($update);

总结

1:写连接数据库功能的方法;

2:再写增加,删除,查找,更新功能

3:链接方法可以重复使用;再写pdo封装sql的时候,要注意sql里面··符号,最好打印出来。

4:写法sql方法的时候,先链接数据库,在拼接sql语句。给他准备预处理语句,最后再去执行。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
温度。2019-03-26 17:26:122楼
更新可以更改多个字段吗,应该还可以灵活一点
阿坚2019-03-26 15:51:371楼
请指教