Blogger Information
Blog 20
fans 0
comment 0
visits 25266
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
用php编写数据库操作-增删查改
左手Leon的博客
Original
906 people have browsed it

实例

<?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与函数也调用,发现仍是同样没有结果。

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

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

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
0 comments
Author's latest blog post