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,为了提高代码的复用 ...
随机推荐
- R语言 奇怪的NA
> 1+NA [1] NA > NA==1 [1] NA > c(NA,1:50) [1] NA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- 全文检索引擎Solr系列——整合MySQL、MongoDB
MySQL 拷贝mysql-connector-java-5.1.25-bin.jar到E:\solr-4.8.0\example\solr-webapp\webapp\WEB-INF\lib目录下面 ...
- HDU 5596(更新,两种方法)
更新: 这是中文题目的链接: http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=659&pid=1001 ...
- Java 7 Concurrency Cookbook 翻译 序言
在日常的Java代码开发过程中,很难免地有对多线程的需求,掌握java多线程和并发的机制也是Java程序员写出更健壮和高效代码的基础.笔者找寻国内已出版的关于Java多线程和并发的的中文书籍和翻译书籍 ...
- POJ2104 —— K-th number
1.题目大意:区间第k小,什么修改没有... 2.分析:这个是可持久化线段树,也是主席树,解释一下,n个线段树是怎么存下的,就是每一颗线段树和前一个有logn个点不一样 然后我们只需要一个线段树开lo ...
- Linux 利器- Python 脚本编程入门(一)
导读 众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写.大多数人会认为 Bash (或者其他的 shell 语言)用起来很方便,但一些强大的语言(比如 Python)会 ...
- NSTimer用法,暂停,继续,初始化
NSTimer用法,暂停,继续,初始化 转载:http://blog.csdn.net/zhuzhihai1988/article/details/7742881 NSTimer的使用方法 1.初始化 ...
- HTTP请求常见状态码
HTTP状态码(HTTP Status Code) 一些常见的状态码为: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码.代码 说明 100 (继续) 请求者应当继续提出请求. 服务 ...
- Python自动化之sqlalchemy复合外键
复合外键用法 metadata = MetaData(engine) classedu = Table('classedu', metadata, # Column('qq', BigInteger, ...
- java文件和文件夹复制、删除、移动操作
java文件和文件夹复制.删除.移动操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...