Blogger Information
Blog 10
fans 0
comment 2
visits 7799
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PDO总结-php培训五期线上班
阿坚的博客
Original
900 people have browsed it

功能:

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语句。给他准备预处理语句,最后再去执行。

Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
2 comments
温度。 2019-03-26 17:26:12
更新可以更改多个字段吗,应该还可以灵活一点
2 floor
阿坚 2019-03-26 15:51:37
请指教
1 floor
Author's latest blog post