博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前后端交互总结2:使用PHP进行表单数据上传与更新
阅读量:6577 次
发布时间:2019-06-24

本文共 2393 字,大约阅读时间需要 7 分钟。

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

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文件的方法.

转载于:https://juejin.im/post/5b1a6d7d6fb9a01e8b7821b5

你可能感兴趣的文章
互联网架构师必备技术 Docker仓库与Java应用服务动态发布那些事
查看>>
Intellij IDEA 2018.2 搭建Spring Boot 应用
查看>>
SNMP AGENT函数介绍
查看>>
[Usaco2005 Open]Disease Manangement 疾病管理 BZOJ1688
查看>>
【Android视图效果】分组列表实现吸顶效果
查看>>
多文件上传示例源码(默认支持各种类型,包括图片)
查看>>
命令行基本操作学习笔记(一)
查看>>
「试着读读 Vue 源代码」工程目录及本地运行(断点调试)
查看>>
A Visual Git Reference
查看>>
Tomcat 关于表单提交数据量过大导致数据丢失的问题
查看>>
金融数据库
查看>>
翻了100个程序员的朋友圈, 发现个个都是套路王
查看>>
取消从上一界面push过来后,左上角的back按钮
查看>>
为什么 ++[[]][+[]]+[+[]] = 10?
查看>>
ContentProvider
查看>>
Redis 持久化存储
查看>>
Android 自定义GridView网格布局
查看>>
基于 jQuery & CSS3 实现智能提示输入框光标位置
查看>>
我的友情链接
查看>>
ThreadLocal分析
查看>>