Blogger Information
Blog 28
fans 0
comment 0
visits 15742
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
2018-08-30mysqli数据库操作+PDO数据操作
阿小的博客
Original
672 people have browsed it

实例

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PDO操作数据库</title>
<style type="text/css">
table{
	width:500px;
	border-collapse:collapse;
	margin-top:20px;
}
table tr th{
	border:1px solid black;
	padding:5px;
	text-align:center;
	font-size:20px;
}
table tr:first-child{
	background:lightblue;
	font-weight:bold;
}
table tr td{
	border:1px solid black;
	padding:5px;
	text-align:center;
}
</style>
</style>
</head>
<body>

<?php 
//PDO:PHP数据对象,是PHP操作所有数据库的抽象层,提供了一个统一的访问接口

//抛出异常
try{
	//1.实例化一个PDO对象并连接数据库new PDO($dns,$user,$password),$dsn:数据源,设置数据库类型,以及数据库服务器和默认数据库
	$pdo = new PDO('mysql:host=127.0.0.1;dbname=test','root','123456');
	//2.要执行的SQL语句 IGNORE:防止重复插入   :user占位符
	//插入数据
	$sql = 'INSERT IGNORE cms_user SET user=:user,pass=sha1(:pass),email=:email';
	//3.创建预处理对象
	$stmt = $pdo->prepare($sql);
	$data = array('user'=>'柯南','pass'=>'123456','email'=>'kenan@qq.com');
	//4.绑定参数
	$stmt->bindParam(':user',$data['user'],PDO::PARAM_STR);	//PDO::PARAM_STR,常量,说明参数为字符串型
	$stmt->bindParam(':pass',$data['pass']);
	$stmt->bindParam(':email',$data['email']);
	if($stmt->execute()){
		//rowCount(),返回执行所影响的行数,一般是写(增,删,改)操作
		echo '成功插入'.$stmt->rowCount().'条数据.<br>';
	}else{
		echo '<sapn style="color:red">插入失败!</span>';
		print_r($stmt->errorInfo());	//打印错误信息
		exit();
	}
	
	//简化参数绑定
	$data = array('user'=>'蓝猫','pass'=>'123456','email'=>'lanmao@php.com');
	if($stmt->execute($data)){
		//rowCount(),返回执行所影响的行数,一般是写(增,删,改)操作
		echo '成功插入'.$stmt->rowCount().'条数据.<br>';
	}else{
		echo '<sapn style="color:red">插入失败!</span>';
		print_r($stmt->errorInfo());	//打印错误信息
		exit();
	}
	
	$sql = 'UPDATE IGNORE `cms_user` SET email=:email WHERE user="蜡笔小新"';
	$stmt = $pdo->prepare($sql);
	$email= array('email'=>'123@123.com');
	if($stmt->execute($email)){
		echo '成功插入'.$stmt->rowCount().'条数据.<br>';
	}else{
		echo '<sapn style="color:red">修改失败!</span>';
		print_r($stmt->errorInfo());	//打印错误信息
		exit();
	}
	
	$sql = 'SELECT id,user,email FROM `cms_user` WHERE id>:id';
	$stmt = $pdo->prepare($sql);
	
	if($stmt->execute(array('id'=>20))){
		//fetchAll获取所有结果集,返回值是二维数组,数据量大时不推荐使用
		echo '<table><tr><th>id</th><th>user</th><th>email</th></tr>';
		foreach($rows=$stmt->fetchAll() as $row){
			echo '<tr><td>'.$row['id'].'</td><td>'.$row['user'].'</td><td>'.$row['email'].'</td></tr>';
		}
		echo '<table>';
	}else{
		echo '<sapn style="color:red">查询失败!</span>';
		print_r($stmt->errorInfo());	//打印错误信息
		exit();
	}
	
	if($stmt->execute(array('id'=>20))){
		//fetch()一次取一条数据,
		echo '<table><tr><th>id</th><th>user</th><th>email</th></tr>';
		while($row = $stmt->fetch()){		//$stmt->fetch(PDO::FETCH_ASSOC) ,默认关联索引数组都有,PDO::FETCH_ASSOC只是关联数组
			echo '<tr><td>'.$row['id'].'</td><td>'.$row['user'].'</td><td>'.$row['email'].'</td></tr>';
		}
		echo '<table>';
	}else{
		echo '<sapn style="color:red">查询失败!</span>';
		print_r($stmt->errorInfo());	//打印错误信息
		exit();
	}
	
	$sql = 'SELECT count(*) FROM `cms_user`';
	$stmt = $pdo->prepare($sql);
	if($stmt->execute()){
		//fetchColumn()获取一行一列,无法获取同一行其他列
		echo '总共查询到'.$stmt->fetchColumn().'条数据';
	}else{
		echo '<sapn style="color:red">查询失败!</span>';
		print_r($stmt->errorInfo());	//打印错误信息
		exit();
	}
	
}catch (PDOException $e){
	//抛出异常,输出异常信息
	echo '<sapn style="color:red">'.$e->getMessage().'</span>';
	exit();
}
//释放预处理
$stmt = null;
//释放连接或者unset($pdo)
$pdo = null;




?>
</body>
</html>

运行实例 »

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


Correction status:qualified

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