使用图像附件更新数据库记录

时间:2013-04-28 04:15:23

标签: php

大家好,请你在php中查看我的代码。我有问题当我需要更新我的数据库记录,包括图片,每次我需要更新我需要眉头再次更新图片,如果不是它将覆盖旧图片和空白,所以我希望它可选图片当我们更新时,如果我们不需要更新图片,我希望它仍然存储旧图像。

这是我的代码:

if(isset($_POST["save"])){
$sid = $_POST['sid'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$sex = $_POST['sex'];
$nationality = $_POST['nationality'];
$photo = $_FILES['photo']['tmp_name'];
$dept = $_POST['dept'];
$position = $_POST['position'];
$date = $_POST['date'];
$status = $_POST['status'];
$efile = $_POST['efile'];

if(!isset($photo))
  echo "Please select the photo";
  else
  {
  $photo=addslashes(file_get_contents($_FILES['photo']['tmp_name']));
  $photo_name = addslashes($_FILES['photo']['name']);
  $photo_size = getimagesize($_FILES['photo']['tmp_name']);
  if ($photo_size==FALSE)
  echo "that's not an image.";
 }

 $updateSQL = "UPDATE staff SET sid='$sid', fname='$fname', lname='$lname', sex='$sex', nationality='$nationality', photo='$photo', dept='$dept', position='$position', date='$date', status='$status', efile='$efile' WHERE sid='$_POST[hidden]'";

1 个答案:

答案 0 :(得分:1)

据我了解的问题,

您希望保留旧图像以及新图像。那么为什么不在图像名称中添加唯一编号作为前缀。使用生成唯一ID的函数uniqid

前:

$file_name = uniqid().$_FILES['photo']['tmp_name'];

然后将$ file_name存储在数据库中,并存储在图像中。

另请注意,您的代码易受SQL注入攻击。