博客列表 >用php编写数据库操作-增删查改

用php编写数据库操作-增删查改

左手Leon的博客
左手Leon的博客原创
2019年03月26日 16:30:30907浏览

实例

<?php 
	// php连接sql,并有增删查改函数
	// 数据库连接信息
	// $dsn='mysql:host=localhost;dbname=cars;charset=utf8;port=3306';
	// $user='root';
	// $pass='root';
	// $p=new PDO($dsn,$user,$pass);
	// // 生成PDO类的一个对象p
	

	// 1、sql连接的第一种方式,经过测试可以返回查询的结果
	// $sql='SELECT * FROM `car` WHERE `id`=3 ';
	// try {
	// 	$p=new PDO($dsn,$user,$pass);
	// 	foreach ($p->query($sql) as $value) {
	// 		print_r($value);
	// 	}
	// } catch (PDOException $e) {
	// 	echo $e->getMessage();
	// }

	//2.使用PDO->prepare-->PDOStatement类连接操作数据库
	// $sql='SELECT * FROM `car`';
	// $p=new PDO($dsn,$user,$pass);
	// // 数据库语句执行预算
	// $sth=$p->prepare($sql);
	// $sth->execute();

	
	// /* 运用 PDOStatement::fetch 风格 */
	// //返回了第一条数组
	// // PDO::FETCH_ASSOC:返回一个索引为结果集列名的数组,以‘索引’为下标的数组
	// // print("PDO::FETCH_ASSOC: ");
	// // print("Return next row as an array indexed by\n");
	// // $result = $sth->fetch(PDO::FETCH_ASSOC);
	// // print_r($result);
	// // print("\n");

	// $result=$sth->fetchAll(PDO::FETCH_ASSOC);
	// print_r($result);
	// print("\n");


	// 3.使用预处理,并使用数据绑定查询数据库
	
	
	// 数据库语句执行预算
	

	// 对$sql这条语句进行处理,达到实现增删查改的功能


/**
 * 数据库连接
 * @param $db
 * @return PDO
 */
function connect()
{
	$db = array(
		'charset' => 'utf8',
		'port' => 3306,
		'type' => 'mysql',
		'host' => '127.0.0.1',
		'user' => 'root',
		'pass' => 'root',
		'name' => 'cars'
	);
	$dsn = "{$db['type']}:host={$db['host']}; dbname={$db['name']}; charset={$db['charset']}; port={$db['port']}";//数据源
	try {
		//实例化PDO类,创建PDO对象
		$pdo = new PDO($dsn,$db['user'],$db['pass']);
	} catch (PDOException $e) {
		die('数据库错误:'.$e->getMessage());
	}
	return $pdo;
}
/**
 * 新增数据
 * @param $db
 * @param $table
 * @param $value
 * @return bool
 */
	
	// 添加数据
	function add($table,$value=[]){
		$pdo = connect();

		$sql= 'INSERT INTO {$table}} SET ';
		// 判断要有value,并且不为空
		if(is_array($value)){
			foreach ($value as $k=>$v) {
				$sql .= $k.'="'.$v.'", ';
			}
		}else{
			return false;
		}
		unset($v);
		//去掉尾部逗号,并添加分号结束
		$sql = rtrim(trim($sql),',').';';
		//创建PDO预处理对象
		$stmt = $pdo->prepare($sql);
		//执行新增操作
		if($stmt->execute()){
			if($stmt->rowCount()>0){
				return true;
			}
		} else {
			return false;
		}
	}
	
	// 删除数据
	function del($table,$where=''){
		$pdo = connect();
		if (isset($where)&&!empty($where)) {
			$p=new PDO($dsn,$user,$pass);
			$sql= 'DELETE FROM :t WHERE :w';
			$sth=$p->prepare($sql);
			$sth->bindValue(':t',$table,PDO::PARAM_STR);
			$sth->bindValue(':w',$where,PDO::PARAM_STR);
		}else{
			die('数据库数据删除失败');

		}
		if($stmt->execute()){
		if($stmt->rowCount()>0){
			return true;
		}
	} else {
		return false;
	}

	}

	// 修改数据
	function update($table,$data=[],$where=''){
		if (isset($data)&&isset($where)&&!empty($data)&&!empty($where)) {
			$pdo = connect();
			$sql= 'UPDATE :t SET :s WHERE :w';
			
			$sth=$p->prepare($sql);
			$sth->bindValue(':t',$table,PDO::PARAM_STR);
			$sth->bindValue(':s',$set,PDO::PARAM_STR);
			$sth->bindValue(':w',$where,PDO::PARAM_STR);
		}else{
			die('数据库数据删除失败');

		}
		$sth = $pdo->prepare($sql);
	//执行新增操作
		if($sth->execute()){
			if($sth->rowCount()>0){
				return true;
			}
		} else {
			return false;
		}

	}

	// 查询数据
	function select($table,$field='*',$where='',$asc='',$limit=''){
		$pdo=connect();
		$sql= 'SELECT '.$field.' FROM '.$table;
		if (isset($where)&&!empty($where)) {
			$sql.=' WHERE '.$where;
		}
		if (!empty($asc)) {
			$sql.=' ORDER BY '.$asc;
		}

		if (!empty($limit)){
			$sql.=' LIMIT '.$limit;
		}
		// echo $sql;
		// exit;
		$sth=$pdo->prepare($sql);
		$sth->execute();
		if($sth->execute()){
			if($sth->rowCount()>0){
			$sth->setFetchMode(PDO::FETCH_ASSOC);
			return $sth->fetch();
			}
		} else {
			return false;
		}
	}


	$arr=select('car');
	print_r($arr);
	


 ?>

运行实例 »

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

心得体会:

最后只做了简单的查询检查,并在其中做了一些调试,发现查询结果一直没有出现

然后把老师做好的pdo与函数也调用,发现仍是同样没有结果。

对比了手册中的例程也没有发现自己编写的有问题

然后才去检查数据库中的表,发现表竟然没有了@_@

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