PHP中的UPDATE语句需要知道是否选择了新文件

时间:2016-02-27 17:44:36

标签: php jquery mysql

我有一个客户编辑表单,可以将图像成功上传到我的网站。当我使用FILE字段上传文件时,它会将其保存到我的mysql数据库中。

问题是,如果我再次保存客户端记录,如果FILE字段中没有任何内容,它将用空白条目覆盖现有记录。如果没有新内容上传,我希望它不会覆盖已保存的内容。

下面的代码应该更好地解释。我猜测,如果没有选择上传新文件,UPDATE不应继续 coupon_img ='$ file'

    <?php 
 $file = rand(1000,100000)."-".$_FILES['file']['name']; 
 $file_loc = $_FILES['file']['tmp_name']; 
 $file_size = $_FILES['file']['size']; 
 $file_type = $_FILES['file']['type']; 
 $folder="coupons/"; 
$id = $_POST['id']; 
$category = $_POST['category']; 
$package = $_POST['package']; 
$client_name = $_POST['client_name']; 
$client_img = $_POST['client_img']; 
$deal = $_POST['deal']; 
$phone = $_POST['phone']; 
$yelp = $_POST['yelp']; 
$address = $_POST['address']; 
$latlong = $_POST['latlong']; 


 move_uploaded_file($file_loc,$folder.$file); 
$sql="UPDATE $tbl_name SET id='$id', category='$category', coupon_img='$file', package='$package', client_name='$client_name', client_img='$client_img', deal='$deal', phone='$phone', yelp='$yelp', address='$address', latlong='$latlong' WHERE id='$id'"; 
$result_edit=mysqli_query($GLOBALS["___mysqli_ston"], $sql); 

// if successfully updated.  
if($result_edit){ 
header("Location: edit/edit.php"); 
} 

else { 
echo "ERROR"; 
} 

?>

1 个答案:

答案 0 :(得分:0)

我想出了如何做到这一点......

if($_FILES['file']['name'] == "") {
$sql="UPDATE $tbl_name SET id='$id', category='$category', package='$package', client_name='$client_name', client_img='$client_img', deal='$deal', phone='$phone', yelp='$yelp', address='$address', latlong='$latlong' WHERE id='$id'"; 
 } else {
$sql="UPDATE $tbl_name SET id='$id', category='$category', coupon_img='$file', package='$package', client_name='$client_name', client_img='$client_img', deal='$deal', phone='$phone', yelp='$yelp', address='$address', latlong='$latlong' WHERE id='$id'";  
 }