PHP图片

项目介绍

这是笔者从GITHUB上找的简单PHP程序(用于学习)

image_1cc2vfnu31qpg1a1j1fob13be3ejm.png-72.6kB
这是一个可 增删查 的用户数据管理


数据库连接代码:

先介绍一下数据库的表结构:

image_1cc3136er1ru31m9si1chlcue21t.png-24.4kB

1
<?php
2
    $pdo = new PDO('mysql:host=localhost;dbname=data','root','root'); //PDO(PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据,比如mysql有limit,MSSQL没有limit,pdo会自动转换)
3
    $pdo->exec('set names utf8'); //设置编码
4
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC); //设置默认结果集模式为关联数组
5
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //修改报错模式
6
?>

其中的PDO是:

PDO(PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据,比如mysql有limit,MSSQL没有limit,pdo会自动转换)

PDO好处:

  1. 更换数据库时取得极大便利(从A数据库换成其他数据库可以不需要修改查询的代码,因为PDO帮我实现了)
  2. 更换数据库时取得极大便利

首页代码:

1
<?php 
2
	include 'config.inc.php'; //包含连接数据库的代码
3
4
	$len = 10; //每页展现10条数据
5
	$page = !empty($_GET["page"]) ? $_GET["page"] : 1;//三元表达式,表示如果$_GET['page']为空时,默认值为1
6
7
    $sqlTotal = "select count(Id) from t1"; // SQL语句。意思是查询t1表中的Id字段个数
8
    $smtTotal = $pdo->prepare($sqlTotal); //准备要执行的SQL语句并返回一个 PDOStatement 对象(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
9
    echo "<strong>\$sqlTotal:</strong>";
10
    print_r($smtTotal);
11
	echo "<br />";
12
13
    echo "<strong>execute():</strong>";
14
	print_r($smtTotal->execute());
15
    $tot = $smtTotal->fetchColumn();	//总记录数
16
    echo "<br />";
17
18
    echo "<strong>\$tot:</strong>";
19
    print_r($tot);
20
    echo "<br />";
21
22
    $pages = ceil($tot/$len);	//总页数
23
    echo "<strong>\$pages:</strong>";
24
    print_r($pages);
25
    ... ...(省略,先讲解一下这段代码的用法)

image_1cc30pp7sd2s1qr7198mul41vig1g.png-34.8kB

可以看看我写的PDO的(博客里找)

首页的代码我统统写了注释:

image_1cc3s3mnp9ma7luult1egp1rk19.png-178.8kB

更改用户数据代码:

1
<?php
2
3
/* 
4
    思路:先获取对应的数据,然后返回到输入框,如果我们选择提交,表单就会发送的数据就会更改到数据库里,实现更改内容
5
*/
6
	
7
	<?php
8
include 'config.inc.php';
9
$Id = $_GET["Id"]; //获取GET请求过来的Id值
10
11
$sql = "select * from t1 where Id=?"; //SQL语句的查询
12
$smt = $pdo->prepare($sql); //给SQL语句做标记
13
$smt->bindValue(1,$Id); //想成是给上面的?改成$Id变量的值
14
$smt->execute(); //执行SQL语句
15
16
$row = $smt->fetch(); //接收SQL语句查询到的结果
17
18
?>
19
<!DOCTYPE html>
20
<html>
21
<head>
22
    <title>update</title>
23
    <meta charset="utf-8">
24
</head>
25
<script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script>
26
<script type="text/javascript" src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
27
<link rel="stylesheet" type="text/css" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
28
<body>
29
<div class="container">
30
    <h1 class="page-header">
31
        <a href="index.php" class="btn btn-warning">查看用户</a>
32
        <a href="" class="btn btn-primary">修改用户</a>
33
    </h1>
34
    <form action="act.php?act=update&Id=<?php echo $Id;?>" method="post"> <!-- act页面实现的修改功能,这里只需要传入要修改的Id值就可以更改此Id中对应的数据 -->
35
        <div class="form-group">
36
            <label>新用户名:</label>
37
            <input type="text" class="form-control" name="Name" value=<?php echo "{$row['Name']}";//把查询到的数据的Name返回到输入框中,这样子我们就可以实现修改功能 ?>
38
            >
39
        </div>
40
        <div class="form-group">
41
            <label>新密码:</label>
42
            <input type="text" class="form-control" name="Pwd" value=
43
            <?php echo "{$row['Pwd']}"; //同上?>
44
            >
45
        </div>
46
        <div class="form-group">
47
            <input type="submit" class="btn btn-primary">
48
            <input type="reset" class="btn btn-danger">
49
        </div>
50
    </form>
51
</div>
52
</body>
53
</html>

插入数据代码:

1
<!DOCTYPE html>
2
<html>
3
<head>
4
	<title>add</title>
5
	<meta charset="utf-8">
6
</head>
7
<script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script>
8
<script type="text/javascript" src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
9
<link rel="stylesheet" type="text/css" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
10
<body>
11
	<div class="container">
12
		<h1 class="page-header">
13
			<a href="index.php" class="btn btn-warning">查看用户</a>
14
			<a href="" class="btn btn-primary">添加用户</a>
15
		</h1>
16
		<form action="act.php?act=insert" method="post"> <!-- act.php页面实现了插入功能,所以这里我们只需要把内容提交到act.php就可以完成插入内容 -->
17
			<div class="form-group">
18
				<label>用户名:</label>
19
				<input type="text" class="form-control" name="Name">
20
			</div>
21
			<div class="form-group">
22
				<label>密码:</label>
23
				<input type="text" class="form-control" name="Pwd">
24
			</div>
25
			<div class="form-group">
26
				<input type="submit" class="btn btn-primary">
27
				<input type="reset" class="btn btn-danger">
28
			</div>
29
		</form>
30
	</div>
31
</body>
32
</html>

删除功能代码:

删除页面代码也在首页(index.php)里实现的
image_1cc57auk9gkn62o16121cad1bau9.png-104.5kB
一般我们删除操作是需要十分谨慎的,因为数据一旦删除是无法恢复的,那么如果用户不小心点到了按钮,我们就应该提醒他是否要删除。

image_1cc57donr1leu1i341t1r1479fafm.png-36kB
可以看到这里有一个class是delete,然后看到下面有一段提醒是否执行删除的JS代码:
image_1cc57nvhn1dml1u0910ko1sccv4213.png-48.6kB

最后我们看看act.php的代码:

1
<?php 
2
	include 'config.inc.php'; //包含PDO链接数据库代码
3
4
	$act = $_GET["act"]; //获取GET请求过来的act值,来实现增、删、改。
5
6
	if($act == 'delete'){ //如果是选择删除
7
    	$Id = $_GET["Id"]; //获取GET请求过来的ID
8
    	$sql = "delete from t1 where Id=?"; //这是SQL语句的删除
9
    	$smt = $pdo->prepare($sql); //给SQL语句做标记
10
    	$smt->bindValue(1,$Id); //绑定一个值到用作预处理的 SQL 语句中的对应命名占位符或问号占位符
11
	if($smt->execute()){ //判断是否执行成功,如果执行成功返回的是1
12
			echo "<script>location='index.php'</script>"; //执行成功就跳转到首页(index.php)
13
		}
14
	}
15
	
16
	if($act == 'insert'){ //如果是选择插入
17
        $Name = $_POST["Name"]; //获取POST请求的Name值
18
        $Pwd = $_POST["Pwd"]; //获取POST请求的Pwd值
19
        $sql = "insert into t1(Name,Pwd) values('{$Name}','{$Pwd}')"; //这是SQL语句的插入
20
        $smt = $pdo->prepare($sql); //给SQL语句做标记
21
        if($smt->execute()){ //判断是否执行成功
22
            echo "<script>location='index.php'</script>"; //执行成功就跳转到首页(index.php)
23
        }
24
}
25
    /*如果act=update和id=x,那么就执行修改的SQL语句,修改条件(where)是Id=x*/
26
	if($act == 'update'){ //如果是更改
27
		$Id = $_GET["Id"]; //获取GET请求的Id值
28
		$Name = $_POST["Name"]; //获取POST的Name值
29
		$Pwd = $_POST["Pwd"]; //获取POST请求的Pwd值
30
		$sql = "update t1 set Name='{$Name}',Pwd='{$Pwd}' where Id={$Id}"; //这是SQL语句的更改
31
		$smt = $pdo->prepare($sql); //给SQL语句做标记
32
		if($smt->execute()){ //判断是否执行成功
33
			echo "<script>location='index.php'</script>"; //如果执行成功就跳转到首页(index.php)
34
		}
35
	}
36
37
	
38
 ?>