博客列表 >PDO增删查改的自定义方法 ----- 2019年3月21日20时00分

PDO增删查改的自定义方法 ----- 2019年3月21日20时00分

Ray的博客
Ray的博客原创
2019年03月22日 22:11:51806浏览
  • 1自定义方法 PDO向数据库查询数据

  • 实例

    // 查询数据
    	// $table 必须传值
    	// 作业 : 用PDO把增删改方法写好,可以传值
    	function select($table,$field,$where='',$order='',$limit=''){
    		// 1,连接
    		$c = con();
    		// 2,sql语句
    		$sql = 'SELECT ';	// 组装select关键词
    
    		// 如果返回值传值,才进行组装
    		if(!empty($field)){
    			$sql .= trim($field);		// 组装查询返回字段
    		}
    		else{
    			$field='*';
    			$sql .= $field;	
    		}
    
    		$sql .= ' FROM ';	// 组装表名关键词
    		$sql .= $table;		// 组装表名
    		// empty 判断变量是否为空
    		// ! 取反
    		// !empty($where) 判断变量不为空,才会进入if
    		// 判断是否传条件,传了条件进行条件组装
    		if(!empty($where)){
    			$sql .= ' WHERE ';	// 组装条件关键词
    			$sql .= trim($where);		// 组装条件
    		}
    
    		// 判断排序
    		if(!empty($order)){
    			$sql .= ' ORDER BY ';
    			$sql .= trim($order);
    		}
    
    		// 判断数量
    		if(!empty($limit)){
    			$sql .= ' LIMIT ';
    			$sql .= trim($limit);
    		}
    
    		// 3,预处理sql语句
    		$a = $c->prepare($sql);
    		// 4,执行sql语句,判断是否执行mysql语句成功
    		// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
    		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('staff','','id>=2','id desc','0,1');
    	// print_r($s);

    运行实例 »

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

  •  调用select方法得到的效果图:

            1553186837(1).png

  • 2.自定义方法 PDO添加数据到数据库


  • 实例

    	//添加数据
    	function add($table,$field,$content){
    
    		// 1,连接
    		$c = con();
    		// 2,sql语句
    		$sql = ' INSERT INTO '; //组装添加语句
    		$sql .=	trim($table); //trim()去掉前后空格
    		//判断要添加的字段是否为空 为空则默认全部字段,不为空则为输入的字段
    		if (!empty($field)) {
    			$sql .= trim("($field)");
    		}
    		$sql .= ' VALUES ';
    		//对应字段填入要添加的内容
    		$sql .= trim("($content)");
    
    		// 3,预处理sql语句
    		$a = $c->prepare($sql);
    		// 4,执行sql语句,判断是否执行mysql语句成功
    		// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
    		if($a->execute()){
    			return '添加成功';
    		}else{
    			return "添加失败";
    		}
    		
    }
    // $add = add('staff','name,position','"李锐欣4","最强全栈工程师4"');
    // echo $add;

    运行实例 »

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

  • 调用add方法得到的效果图

    1553187264(1).png


  • 3.自定义方法删除数据库数据

  • 实例

    //删除数据
    	function delete($table,$where=''){
    		//连接数据库
    		$c = con();
    		$sql = 'DELETE'; //组装删除语句
    		$sql .= ' FROM ';
    		$sql .= trim($table);
    
    		//where必须填不然删除的是整个表,填入则删除对应的数据行
    		if (!empty($where)) {
    			$sql .= ' WHERE ';
    			$sql .= trim($where);
    		}
    		//3,预处理sql语句
    		$a = $c->prepare($sql);
    		// 4,执行sql语句,判断是否执行mysql语句成功
    		// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
    		if($a->execute()){
    			return '删除成功';
    		}else{
    			return "删除失败";
    		}
    	}
    	// $delete = delete('staff');
    	// echo $delete;

    运行实例 »

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

  • 调用delete方法得到的效果图:

    1553187419(1).png


  • 4.自定义方法PDO修改数据库数据

  • 实例

    	//修改数据
    	function update($table,$field,$where=''){
    		//连接数据库
    		$c = con();
    		$sql = ' UPDATE '; //组装修改语句
    		$sql .= trim($table);
    		$sql .= ' SET ';
    		$sql .= trim($field);
    		//wehere必须填不然将整个表修改,填入则修改对应的数据行
    		if (!empty($where)) {
    			$sql .= ' WHERE ';
    			$sql .= trim($where);
    		}
    		//3,预处理sql语句
    		$a = $c->prepare($sql);
    		// 4,执行sql语句,判断是否执行mysql语句成功
    		// 为什么要判断,别人使用咱们写好的方法,可能会传一些,无法估计的参数,导致查询失败。
    		if($a->execute()){
    			return '修改成功';
    		}else{
    			return "修改失败";
    		}
    
    	}
    	//$update = update('staff','name="锐欣会成为PHP工程师"','id=3');
    	//echo $update;

    运行实例 »

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

  • 调用update方法得到的效果图

    1553187687(1).png

  • 5.总结:

    ① PHP Data Object(php数据对象)-- 它是一种数据库抽象层。用PDO可以连接操作各个数据库。

    ② 一套代码可以操作多个数据库,更换数据库不用从新写代码

    ③ 用pdo来操作数据库,效率更高(执行速度更快)

       ④ 安全性更高

       ⑤学习了面对对象的编程,感觉很实用,在学校学习的是面向过程是另一种思维,面向过程的实用性非常明显是绝对占据优势的,会继续坚持学习的

上一条:数据库基础下一条:pdo 的基础
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议