php脚本点击链接更新mysql表

时间:2014-08-23 09:20:41

标签: php mysql sql

我是php的新手,需要帮助。

我的链接如下:

//create a path to download
echo '<a download="Final_File_'.$filenames.'" name="save" href="'.$DownDir. "/".$filenames.'" target="_blank"><img src="images/Save File.png"/></a>';
//Query
$Query = 'UPDATE `tbl_download_log` SET `User_Id` = `User_Id`, `path` = `$DownDir. "/".$filenames`';

单击ImageLink时保存文件,需要使用“用户ID”&amp;更新名为tbl_download_log的MySQL数据库中的表。 '同时下载链接'。

我建立了连接并获得了用户ID。 请帮我更新db表中的东西。


在其中更新新脚本。

<?php
$DownDir = "http://localhost/SGA-INTRANET/".$kmsroot. "/". $user. "/". $bu. "/". $client. "/". $project."/Final";
$filenames = "file.xlsx";

$pathDown1 = $DownDir. "/".$filenames;//download path

//using download functionality of HTML 5
echo '<a download="Final_File_'.$filenames.'" name="save" href="'.$pathDown1.'?id='.$name.'&filepath='.$pathDown1.'" target="_blank"><img src="images/Save File.png" title="Download the file"/></a>';
?>

<?php 

$ide = $_GET['id'];//EmployeeID
$file = $_GET['filepath'];// Path

if(isset($ide) && isset($file)) 
{
if(file_exists($file)) 
{
//save log to DB table 'tbl_km_file_download'
$mysqli = new mysqli("localhost", "USERNAME", "PASSWORD", "DBNAME");
$mysqli->query("INSERT INTO `tbl_km_file_download` (`name`, `filename`) VALUES ('$ide', '$file')");
}
}

?>

正在下载文件但没有更新数据库表。 请看图片。 Case 1 Case 2

请帮忙。

1 个答案:

答案 0 :(得分:1)

您可以使用查询字符串

通过href传递数据

实施例

echo '<a href="path/download.php?id='.$user_id.'&file='.$file.'">CLICK THE LINK</a>';

$ file 应该是根相对路径,以/开头。

然后在 download.php

<?php
$id   = $_GET['id'];
$file = $_GET['file'];

if(isset($id) && isset($file)) {
   if(file_exists($file)) {
      //connect to database .... (I show it with PDO)
      $db   = new PDO('mysql:host=localhost;dbname=DATABASENAME;charset=utf8', USERNAME, PASSWORD);
      $stmt = $db->prepare("INSERT INTO `tbl_download_log` (`User_Id`, `path`) VALUES (?, ?)");
      $stmt->execute(array($id, $file));

      //download the file....       
      header('Content-Description: File Transfer');
      header('Content-Type: application/octet-stream');
      header('Content-Disposition: attachment; filename='.basename($file));
      header('Content-Transfer-Encoding: binary');
      header('Expires: 0');
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
      header('Pragma: public');
      header('Content-Length: ' . filesize($file));
      ob_clean();
      flush();
      readfile($file);
   } else echo "The file does not exist.";
} else echo "An error occurred.";

希望这有帮助。