博主信息
博文 10
粉丝 0
评论 2
访问量 9313
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PDO总结-php培训五期线上班
阿坚的博客
原创
1038人浏览过

功能:

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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
2条评论
温度。 2019-03-26 17:26:12
更新可以更改多个字段吗,应该还可以灵活一点
2楼
阿坚 2019-03-26 15:51:37
请指教
1楼
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学