• 大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新


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

  • 相关阅读:
    三数之和
    罗马数字与整数
    Oracle 开启或关闭归档
    Oracle RMAN scripts to delete archivelog
    Oracle check TBS usage
    Oracle kill locked sessions
    场景9 深入RAC运行原理
    场景7 Data Guard
    场景4 Data Warehouse Management 数据仓库
    场景5 Performance Management
  • 原文地址:https://www.cnblogs.com/autoXingJY/p/9139427.html
Copyright © 2020-2023  润新知