1:使用PHP进行表单上传

1.1 form表单的数据收集

HTML页面:

代码解释:核心模块是form的属性:

--提交方式 :  method="post"
--指定 name 属性:  例如 name="username"
-- 给 form 指定文件上传格式:  enctype="multipart/form-data"
 
 
2点击提交按钮后,后台进行的操作

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方法注解:

mysqli_connect( '127.0.0.1', 'root', 'root', 'stumanage', '3306' ); PHP链接指定数据库的方法.

mysqli_close( $link ); 数据库使用完毕后,关闭数据库链接的方法,不能省略.

mysqli_query( $link, $sql ); 执行 sql, 执行的是查询, 成功输出结果集, 失败返回false.

mysqli_error( $link ); php打印错误信息的方法

header("location: studentList.php"); php跳转到指php文件的方法.

大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新的更多相关文章

  1. 大前端涉猎之前后端交互总结3:使用PHP进行表单数据删除与查询

    1 首先:获取用户 id,根据id 删除指定的数据. 在链接完数据库之后,通过$_GET 超全局变量,获取删除的书内容 $id = $_GET['id']; 2 准备delete SQL语句: $sq ...

  2. 大前端涉猎之前后端交互总结1: 软件架构与PHP搭建

    1 软件架构与PHP搭建 1.1 HTTP服务器(web服务器) 即( web服务器 )网站服务器,主要提供文档(文本.图片.视频.音频)web浏览服务,一般安装Apache.Nginx服务器软件. ...

  3. 2、前端--初见前后端交互、CSS简介、基本选择器、组合选择器、属性选择器、分组与嵌套、伪类选择器

    今日内容概要 初窥后端框架 css简介 css选择器 今日内容详细 初次体验前后端交互 # 代码无需掌握 只看效果即可 """后端框架:可以简单的理解为别人写好的一个非常 ...

  4. 前端笔记之微信小程序(三)GET请求案例&文件上传和相册API&配置https

    一.信息流小程序-GET请求案例 1.1服务端接口开发 一定要养成接口的意识,前端单打独斗出不来任何效果,必须有接口配合,写一个带有分页.关键词查询的接口: 分页接口:http://127.0.0.1 ...

  5. JavaScript数据类型BigInt实践之id数值太大,导致前后端交互异常

    项目开发中前后端数据交互常会使用id作为主键索引,通常id数值都不大,使用number类型就可以表示处理,但对于一些分布式id或其他情况,id数值太大且超过了JS的最大处理数(Math.pow(2,  ...

  6. 学习web前端技术的笔记,仅供自己查阅备忘,图片上传预览

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  7. 我为NET狂-----大前端专帖

    http://dnt.dkill.net/Article/Detail/321 本来前端的东西是不想开个专贴的,这样网友容易产生依赖,前端的东西看看书,平时仿照几个网站,遇到问题再调调增加点经验,基本 ...

  8. 爱上MVC系列~前端验证与后端数据有效性验证

    回到目录 有一句话,在10年前就是真理,到现在也一直都是,“前端验证可以没有,但后端验证必须要有”,这句话相信大家都没有意见吧,前端验证一般指通过JS方式实现的,友好的,个性的验证方式,而后端验证是指 ...

  9. java大文件上传解决方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

随机推荐

  1. nginx 反向代理与负载均衡应用实践

    集群介绍 集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器.这些服务器之间可以彼此通信,协同向 ...

  2. [置顶] C语言中 || 和 &&

    || 或操作,|| 为界将表达式分为两部分,他会先算前一部分,如果前一部分为真,他将停止运算,如果为假,他才会算第二部分,你这里第一部分就为真了,第二部分当然也就不会算了. 例如:  a || b , ...

  3. 负载均衡的时候如何实现相同的session被分配到同一个服务器

    http://www.zhihu.com/question/19651970 session共享那个问题时,有人说:其实从负载均衡的层面来看,大多数硬件/软件的负载均衡方案,都支持session状态保 ...

  4. sublime text安装插件

    http://www.sublimetext.com/ 安装Sublime Text 2插件的方法: 1.直接安装 安装Sublime text 2插件很方便,可以直接下载安装包解压缩到Package ...

  5. Django 模型层(2)

    多表操作: 创建模型: 作者模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及em ...

  6. OrhtoMCL 使用方法

    OrthoMCL的使用分13步进行,如下: 1. 安装和配置数据库 Orthomcl可以使用Oracle和Mysql数据库,而在这里只介绍使用Mysql数据库.修改配置文件/etc/my.cnf,对M ...

  7. ThinkPHP自动令牌验证(附实例)

    一.数据表结构 user表结构如下: id username password 二.view模板部分 /view/index.html页面如下:   1 2 3 4 5 6 <form acti ...

  8. .net Reactor之限指定设备使用

    .net Reactor之license限指定设备使用 上一篇(https://www.cnblogs.com/s313139232/p/9908400.html)中记录了.net Reactor对d ...

  9. nrm操作

    nrm操作 nrm use cnpm // 选择镜像nrm ls //查看镜像

  10. 「小程序JAVA实战」小程序注册界面的开发(29)

    转自:https://idig8.com/2018/08/27/xiaochengxujavashizhanxiaochengxuzhucejiemiandekaifa29/ 小程序基本所有的常用组件 ...