php数据访问增删查
1、先做一个登陆界面
<form action="chuli.php" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="text" name="pwd" /></div>
<div><input type="submit" name="" value="确定" /></div>
</form>
2、访问数据库进行账号密码验证(拿用户名查密码,再进行验证)
$uid = $_POST["uid"];
$pwd = $_POST["pwd"]; $db = new MySQLi("localhost","root","159357","shuiguo"); $sql = "select password from login where username='{$uid}'"; //当用此方法时会出现不输入数据就能直接登录,所以要加if判断密码不等于空 $reslut = $db->query($sql); $n = $reslut->fetch_row(); if($uid !="" && $pwd != "") //判断用户名跟密码不等于空
{
if($n[0]==$pwd) //当用此方法时会出现不输入数据就能直接登录,所以要加if判断密码不等于空
{
header("location:main.php");
}
else
{
echo "用户名或密码错误!";
}
}
else
{
echo "用户名密码不能为空";
}
3、登录后跳转到主页:通过查数据库里面的内容,返回一张表、增加操作列(删除)
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
<td>操作</td>
</tr> <?php
$db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "select * from info"; $result = $db->query($sql); $attr = $result->fetch_all(); foreach($attr as $v)
{
$sex = $v[2]?"男":"女"; //三元运算符 $name = NationName($v[3]);
/*$sname = "select name from nation where code='{$v[3]}'"; //根据民族代号查询民族名称 $rname = $db->query($sname); //执行返回rname结果集 $aname = $rname->fetch_row();*/ //返回数组aname 里面存民族名称 查到了一个 echo "<tr>";
echo "<td>{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$sex}</td>
<td>{$name}</td>
<td>{$v[4]}</td>
<td><a href='shanchu.php?c={$v[0]}' onclick=\"return confirm('主人真的不要我了吗?')\">删除</a></td>";
//传主键值c,根据主键值删除数据
//confirm 带确定的对话框(如果用户点确定就返回true 点取消就返回false) // \反斜杠 转义字符
//第一种方法:直接写<td>
/*foreach($v as $v1) //第二种方法:用循环代替<td>
{
echo "<td>{$v1}</td>";
}
echo "</tr>";*/
} function NationName($code) //如果觉得上面写的比较乱,可以用封装 //给一个民族代号返回民族名称
{
$db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "select name from nation where code='{$code}'"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0];
}
?> </table> <a href="add.php"><input type="button" value="点我添加" /></a>
4、删除操作(根据主键值来进行单条删除)
<?php
$code = $_GET["c"];
$db = new MySQLi("localhost","root","159357","renyuanxinxi");
$sql = "delete from info where code='{$code}'";
$r = $db->query($sql);
if($r)
{
header("location:main.php");
}
else
{
echo "删除失败!";
}
5、做一个添加页面(民族列访问数据库,创建下拉列表)
<form action="addchuli.php" method="post">
<div>代号:<input type="text" name="code" /></div>
<div>姓名:<input type="text" name="name" /></div>
<div>性别:
<input type="radio" name="sex" value="1" checked="checked" />男
<input type="radio" name="sex" value="0" />女
</div>
<div>民族:
<select name="nation">
<?php
$db = new MySQLi("localhost","root","159357","renyuanxinxi");
$sql = "select * from nation"; //查找民族信息
$result = $db->query($sql);
$result = fetch_all(); foreach($attr as $v)
{
echo "<option value='{$v[0]}'>{$v[1]}</option>"; //所有表单提交的是value值
}
?>
</select>
</div>
<div>生日:<input type="text" name="birthday" /></div> <div><input type="submit" value="添加"</div>
</form>
6、添加页面处理
$code = $_POST["code"];
$name = $_POST["name"];
$sex = $_POST["sex"];
$nation = $_POST["nation"];
$birthday = $_POST["birthday"]; $db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "insert into info values('{$code}','{$name}',{$sex},'{$nation}','{$birthday}')"; //'{$name}'字符串往布尔型里面扔永远是true $db->query($sql); header("location:main.php"); //在添加性别与民族的时候要写 1或者0 民族代号
小插曲(sql注入攻击)
sql语句代码
$sql = "select count(*) from login where username='{$uid}' and password='{$pwd}'"
用特定字符串登录 a' or '1'='1
解决方法
针对php来说:
1、优化语句
2、处理用户输入内容,用函数判断有无特殊符号
3、PDO方法:分两次发送
php数据访问增删查的更多相关文章
- PHP数据访问增删查(20161028)
注:预定义数组 $_POST[ ]; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...
- 利用dbutils工具实现数据的增删查改操作(dbutis入门)
一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...
- mysql数据库,数据表,数据的增删查改语句
查询mysql支持的引擎 show engines; 查询mysql支持的字符集 show character set; 设置mysql默认存储引擎 set default_storage_engin ...
- 如何在Vue中使用Mockjs模拟数据的增删查改
之前一直使用json-server在前端开发时,搭建本地数据接口测试,但有时又需要将做好的项目放于 github page上做项目演示.在本地时,json server很好使用,但一旦放在github ...
- SQLServer数据操作(建库、建表以及数据的增删查改)
SQLSever数据操作 一.建立数据库: create database DB ---数据库名称 ( name=data1 --文件名, ...
- ASP.NET使用EasyUI-DataGrid + ashx + JQuery Ajax:实现数据的增删查改,查询和分页!
转自:http://www.cnblogs.com/lt-style/p/3457399.html 数据表: 学生表:学生编号.姓名.性别.班级编号.年龄 班级表:班级编号.班级名称 开发过程: 1. ...
- SQLServer数据操作(建库、建表以及数据的增删查改)[转]
SQLSever数据操作 一.建立数据库: create database DB ---数据库名称 ( name=data1 --文件名, filename ...
- MyBatis3-实现单表数据的增删查改
继续前一篇文章http://www.cnblogs.com/EasonJim/p/7050710.html所示的例子,返回的是单个实体,而接下来将进行列表的返回等操作: 一.查询列表 查询出列表,也就 ...
- 学习记录——使用PHP实现数据增删查改等基本功能(前后端分离)
萌新初次学习服务器端语言,分享学习经验 实现功能:1.显示数据表 2.对数据进行分页 3.对数据进行增删查改 由于本萌新采用前后端完全分离方案,所以数据传输用的ajax,为了提高代码的复用 ...
随机推荐
- Todd's Matlab讲义第6讲:割线法
割线法 割线法求解方程\(f(x)=0\)的根需要两个接近真实根\(x^\*\)的初值\(x_0\)和\(x_1\),于是得到函数\(f(x)\)上两个点\((x_0,y_0=f(x_0))\)和\( ...
- spring学习
http://blog.csdn.net/chjttony/article/details/6301523 http://blog.csdn.net/chjttony/article/details/ ...
- hdu.1429.胜利大逃亡(续)(bfs + 0101011110)
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- 【Go入门教程8】总结(25个关键字)
这一章我们主要介绍了Go语言的一些语法,通过语法我们可以发现Go是多么的简单,只有二十五个关键字.让我们再来回顾一下这些关键字都是用来干什么的. break default func ...
- SQLite 数据库调研
SQLite数据库的特点(转载的): ★技术上的优点和特性 SQLite是一个轻量级.跨平台的关系型数据库.既然号称关系型数据库,支持SQL92标准中常用的玩意儿(比如视图.事务.触发器等)就是理所当 ...
- 给groupBox添加滚动条
public Form3() { InitializeComponent(); foreach (Control gbox in groupBox1.Controls) { if (gbox is V ...
- 简单实现div遮罩
顾名思义,div遮罩就是将网页上的一部分用div遮盖起来,防止用户误点,因此div遮罩的一个用途就是将table设置为不可编辑. 作者通过查找资料,并进行简单的测试,最终完成了以下几段简单代码,来实现 ...
- mongodb安装 window
安装MongoDB 1.按照操作系统下载http://www.mongodb.org/downloads. 2.在D盘新建MongoDB文件夹(此文件夹为自定义的数据库安装目录D:\MongoDB)把 ...
- Gunicorn 问题
Does Gunicorn suffer from the thundering herd problem? The thundering herd problem occurs when many ...
- Error: failed to fetch platform android
在使用ionic创建项目后,需要添加平台,运行如下命令添加Android平台时: ionic platform add android 1 出现错误: Error: failed to fetch p ...