大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新
1:使用PHP进行表单上传
1.1 form表单的数据收集
HTML页面:

代码解释:核心模块是form的属性:
2.1 通过$_FILES 超全局变量,获取图像数据:
二维数组,可以获取表单上传的提交数据内容.
Array
(
[photo] => Array
(
[name] => picture.jpg 提交的文件名
[type] => image/jpeg 文件类型
[tmp_name] => C:\Users\Jepson\AppData\Local\Temp\phpBF97.tmp 临时存储的路径
[error] => 0 错误码, 如果是 0 表示没有错误
[size] => 17552 文件大小, 单位 字节 17kb 左右
)
)
2.2 PHP的图像转存: // 1 获取文件数组
$file = $_FILES['photo'];
if ( $file['error'] === 0 ) { // 2 需要转存文件
$ftmp = $file['tmp_name']; // 3 获取临时文件路径
// 4 截取后缀名
$name = $file['name'];
$ext = strrchr( $name, "." );
// 5 随机生成文件名
$newName = time().rand(10000, 99999).$ext;
// 6 转存文件
move_uploaded_file( $ftmp, "./upload/".$newName );
}
2.3 通过$_POST超全局变量获取post数据,保存在全局变量里.
$username = $_POST['username'];
$nickname = $_POST['nickname'];
$age = $_POST['age'];
$tel = $_POST['tel'];
$sex = $_POST['sex'];
$class = $_POST['class'];
$photo = ""; // 图片地址
2.4 准备SQL语句,进行数据库写入操作:插入数据
$sql = "insert into stu (name, nickname, age, tel, sex, photo, classid)
values ('$username', '$nickname', $age, '$tel', '$sex', '$photo', $class)";
2.5 判断是否插入成功,并进行跳转操作
//封装执行数据库的方法
function my_exec( $sql ) {
// 1. 连接数据库
$link = @ mysqli_connect( '127.0.0.1', 'root', 'root', 'stumanage', '3306' ); if ( !$link ) {
echo "数据库连接失败";
return false; //2 . 执行 sql, 执行的是 查询, 成功:结果集, 失败:false
$res = mysqli_query( $link, $sql ); if ( !$res ) { // 失败了
echo mysqli_error( $link ); // 打印错误信息 mysqli_close( $link );
return false;
}
} //执行数据库语句
if ( my_exec( $sql ) ) {
echo "添加成功";
// 跳转到 学生列表php文件
header('location:studentList.php');
}
else {
echo "添加失败";
}
2.6 更新数据库
//获得数据的唯一标识
$id = $_GET['id']; //准备查询语句
$sql = "select * from stu where id = $id"; // 准备 sql 语句 //执行查询语句
$res = mysqli_query( $link, $sql );
PHP方法注解:
1 mysqli_connect( '127.0.0.1', 'root', 'root', 'stumanage', '3306' ); PHP链接指定数据库的方法.
2 mysqli_close( $link ); 数据库使用完毕后,关闭数据库链接的方法,不能省略.
3 mysqli_query( $link, $sql ); 执行 sql, 执行的是查询, 成功输出结果集, 失败返回false.
4 mysqli_error( $link ); php打印错误信息的方法
5 header("location: studentList.php"); php跳转到指php文件的方法.
大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新的更多相关文章
- 大前端涉猎之前后端交互总结3:使用PHP进行表单数据删除与查询
1 首先:获取用户 id,根据id 删除指定的数据. 在链接完数据库之后,通过$_GET 超全局变量,获取删除的书内容 $id = $_GET['id']; 2 准备delete SQL语句: $sq ...
- 大前端涉猎之前后端交互总结1: 软件架构与PHP搭建
1 软件架构与PHP搭建 1.1 HTTP服务器(web服务器) 即( web服务器 )网站服务器,主要提供文档(文本.图片.视频.音频)web浏览服务,一般安装Apache.Nginx服务器软件. ...
- 2、前端--初见前后端交互、CSS简介、基本选择器、组合选择器、属性选择器、分组与嵌套、伪类选择器
今日内容概要 初窥后端框架 css简介 css选择器 今日内容详细 初次体验前后端交互 # 代码无需掌握 只看效果即可 """后端框架:可以简单的理解为别人写好的一个非常 ...
- 前端笔记之微信小程序(三)GET请求案例&文件上传和相册API&配置https
一.信息流小程序-GET请求案例 1.1服务端接口开发 一定要养成接口的意识,前端单打独斗出不来任何效果,必须有接口配合,写一个带有分页.关键词查询的接口: 分页接口:http://127.0.0.1 ...
- JavaScript数据类型BigInt实践之id数值太大,导致前后端交互异常
项目开发中前后端数据交互常会使用id作为主键索引,通常id数值都不大,使用number类型就可以表示处理,但对于一些分布式id或其他情况,id数值太大且超过了JS的最大处理数(Math.pow(2, ...
- 学习web前端技术的笔记,仅供自己查阅备忘,图片上传预览
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- 我为NET狂-----大前端专帖
http://dnt.dkill.net/Article/Detail/321 本来前端的东西是不想开个专贴的,这样网友容易产生依赖,前端的东西看看书,平时仿照几个网站,遇到问题再调调增加点经验,基本 ...
- 爱上MVC系列~前端验证与后端数据有效性验证
回到目录 有一句话,在10年前就是真理,到现在也一直都是,“前端验证可以没有,但后端验证必须要有”,这句话相信大家都没有意见吧,前端验证一般指通过JS方式实现的,友好的,个性的验证方式,而后端验证是指 ...
- java大文件上传解决方案
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
随机推荐
- ping第一包时间过长
一.现象 公司互联网域(说白了就是可以连外网的vlan区域的主机)的几台主机在ping一个合作方提供的域名时,发现在ping 第一个包时,时间特别长,后面第2--N包开始正常.直接ping 该域名对应 ...
- Jq将字符串复制粘贴到剪贴板
第一种: 自己测试时 只适合于input 和textarea 但是针对于其他标签的复制就不能用了.代码如下: <!DOCTYPE html> <html> <head ...
- 将 .NET 任务作为 WinRT 异步操作公开
转自:http://blogs.msdn.com/b/windowsappdev_cn/archive/2012/06/22/net-winrt.aspx 在博文深入探究 Await 和 WinRT ...
- Futures
Futures is a framework for expressing asynchronous code in C++ using the Promise/Future pattern. Ove ...
- 短URL链接系统
定义: 短网址(Short URL),顾名思义就是在形式上比较短的网址.但不知道有多少人像我一样,由于面试问道才知道有这种系统而对短连接原理好奇,从而进行进一步的研究.在Web 2.0的今天,不得不说 ...
- 转 :关于springmvc使用拦截器
原博客: http://elim.iteye.com/blog/1750680 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的 ...
- SqlServer 获得存储过程的返回值(参数返回),别玩了output
declare @dingdanid int declare @fanhuizhi int set @dingdanid = 1 exec 检测订单出库资格 @dingdanid ,@fanhuizh ...
- leetcode830
public class Solution { public IList<IList<int>> LargeGroupPositions(string S) { //" ...
- 我的Linux之路——xshell连接linux虚拟机
出自:https://www.linuxidc.com/Linux/2016-08/134087.htm xshell 5登录本地虚拟机的具体操作步骤如下: 1.首先打开虚拟机,登录到操作系统; 2. ...
- STL源码剖析之组件
本篇文章开始,进行STL源码剖析的一些知识点,后续系列笔记全是参照<STL源码剖析>进行学习记录的 STL在现在的大部分项目中,实用性已经没有Boost库好了,毕竟STL中仅仅提供了一些容 ...