sql >> データベース >  >> RDS >> Mysql

PHPを使用してMySQLからcsvファイルにデータをダウンロードする

    ファイルが実際にデータベース内にある場合は、次の方法でファイルを取得できます。

    Main.php:

    <?php
      $host = "hostname";
      $user = "username";
      $password = "password";
      $database = "database";
    
      $link = mysqli_connect($host, $user, $password, $database);
      If (!$link){
          echo ("Unable to connect to database!");
      }
      else {
      $query = "SELECT * FROM participants";    
      $result = mysqli_query($link,$query);
    
      while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
    
    echo $row['name'] . " " . $row['area_of_exp'] . " " . '<a href="download.php?file='.$row['id_participants']. '"\>'." cv </a><br />";
      }
    
    
    }
    mysqli_close($link);
    ?>
    

    mysqlおよびより具体的なバージョン:

    <?PHP
          include('databaseConnection.php');
    
    
          $query = "SELECT * FROM participants";    
          $result = mysql_query($query);
    
          while ($row = mysql_fetch_array($result, MYSQL_BOTH)){
    
        echo $row['name'] . " " . $row['area_of_exp'] . " " . '<a href="download.php?file='.$row['id_participants']. '"\>'." cv </a><br />";
          }
    
          mysql_close($link);
        ?>
    

    download.php:

    <?php
    
    
    $id_participants = $_GET['file'];
    
    $host = "hostname";
    $user = "username";
    $password = "password";
    $database = "database";
    
    $link = mysqli_connect($host, $user, $password, $database);
    If (!$link){
          echo ("Unable to connect to database!");
      }
      else {
    $query = "SELECT * FROM participants WHERE id_participants = $id_participants";
    
    $result = mysqli_query($link, $query);
    $row = mysqli_fetch_array($result, MYSQLI_BOTH);
    $size = $row['File_Size'];
    $type = $row['File_Type'];
    $name =$row['File_Name'];
    $CV = $row['cv'];
    // echo $size . "". $type . " ". $name;
    
    header("Content-length: $size");
    header("Content-type: $type");
    header("Content-Disposition: attachment; filename=$name");
    echo $CV;
    
    }
    mysqli_close($link);
    
    ?>
    

    Mysqlおよびより具体的に:

    <?php
    
    include('databaseConnection.php');
    
    $id_participants = $_GET['file'];
    
    
    $query = "SELECT * FROM participants WHERE id_participants = $id_participants";
    
    $result = mysql_query($query);
    $row = mysql_fetch_array($result, MYSQL_BOTH);
    $size = $row['File_Size'];
    $type = $row['File_Type'];
    $name =$row['File_Name'];
    $CV = $row['cv'];
    // echo $size . "". $type . " ". $name;
    
    header("Content-length: $size");
    header("Content-type: $type");
    header("Content-Disposition: attachment; filename=$name");
    echo $CV;
    
    }
    mysql_close();
    
    ?>
    

    データベースのレイアウト:

    CREATE TABLE IF NOT EXISTS `participants` (
      `id_participants` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(30) NOT NULL,
      `area_of_exp` varchar(30) NOT NULL,
      `cv` blob NOT NULL,
      `File_Size` varchar(30) NOT NULL,
      `File_Type` varchar(30) NOT NULL,
      `File_Name` varchar(30) NOT NULL,
      PRIMARY KEY (`id_participants`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
    

    http://www.sqlfiddle.com/#!2/91cb3/4

    CVをデータベースに保存しないことをお勧めします。



    1. SQLで生年月日から年齢を計算する方法

    2. MySQL / PHP複数の列から一意の値のみを選択し、それらを別々の配列に配置します

    3. Wordpressはどのように投稿をデータベース内のカテゴリにリンクしますか?

    4. MySQLは、外部キーを無視して、すべてのテーブルを削除します