这是我的方法,但如果更新时输入文件(图像)为空,则它不起作用。我希望如果输入 FILE 为空,它不会更新数据库中的 $file 。但如果有文件它就会更新。这就是为什么我在 IF ELSE 中有 2 个查询。
<?php
if (!isset($_FILES['image']['tmp_name'])) {
mysql_query("UPDATE profile set name ='".$_POST['name']. "', age ='".$_POST['age']. "', bdate ='".$_POST['bdate']."', bplace ='".$_POST['bplace']."', educ ='".$_POST['educ']."', occu ='".$_POST['occu']."', inc ='".$_POST['inc']."', status ='".$_POST['status']."', addr ='".$_POST['addr']."', contact ='".$_POST['contact']."', probpres ='".$_POST['probpres']."', findings ='".$_POST['findings']."', evalreco ='".$_POST['evalreco']."', recom ='".$_POST['recom']."', lastdate = DATE_FORMAT(NOW(),'%m-%d-%Y %h:%i %p') WHERE app_id = '".$_POST['app_id1']."'");
}
else {
$file=$_FILES['image']['tmp_name'];
$image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name= addslashes($_FILES['image']['name']);
move_uploaded_file($_FILES["image"]["tmp_name"],"photos/" . $_FILES["image"]["name"]);
$image_save ="photos/" . $_FILES["image"]["name"];
/*with file in query*/
mysql_query("UPDATE profile set name ='".$_POST['name']. "', age ='".$_POST['age']. "', bdate ='".$_POST['bdate']."', bplace ='".$_POST['bplace']."', educ ='".$_POST['educ']."', occu ='".$_POST['occu']."', inc ='".$_POST['inc']."', status ='".$_POST['status']."', addr ='".$_POST['addr']."', contact ='".$_POST['contact']."', photo ='$image_save', probpres ='".$_POST['probpres']."', findings ='".$_POST['findings']."', evalreco ='".$_POST['evalreco']."', recom ='".$_POST['recom']."', lastdate = DATE_FORMAT(NOW(),'%m-%d-%Y %h:%i %p') WHERE app_id = '".$_POST['app_id1']."'");
}
?>
最佳答案
您可以尝试类似以下的操作 - 未经测试但看起来不错。我假设表单设置为 POST
并且 enctype 设置为 multipart/form-data
<?php
$sql="UPDATE `profile` set
`name`='".$_POST['name']. "',
`age`='".$_POST['age']. "',
`bdate`='".$_POST['bdate']."',
`bplace`='".$_POST['bplace']."',
`educ`='".$_POST['educ']."',
`occu`='".$_POST['occu']."',
`inc`='".$_POST['inc']."',
`status`='".$_POST['status']."',
`addr`='".$_POST['addr']."',
`contact`='".$_POST['contact']."',
`probpres`='".$_POST['probpres']."',
`findings`='".$_POST['findings']."',
`evalreco`='".$_POST['evalreco']."',
`recom`='".$_POST['recom']."',
`lastdate`=DATE_FORMAT( NOW(),'%m-%d-%Y %h:%i %p') ";
/* Perhaps a bit of overkill with detection but better safe than sorry */
if( isset( $_FILES ) && is_array( $_FILES ) && array_key_exists( 'image', $_FILES ) && array_key_exists('name',$_FILES['image']) && !empty( $_FILES['image']['name'] ) ){
/* The user HAS uploaded a file so add the photo/file and the where clause */
/* Perform image manipulation / saving etc */
$tmpfile=$_FILES['image']['tmp_name'];
$filename=$_FILES['image']['name'];
$image=file_get_contents( $tmpfile );
$image_name=addslashes( $filename );
$image_save="photos/" . $filename;
move_uploaded_file( $tmpfile, $image_save );
/* add elements to query */
$sql .= ", `photo` ='".$image_save."' WHERE `app_id`='".$_POST['app_id1']."';";
} else {
/* The user has NOT uploaded a file so just add the where clause */
$sql .= "WHERE `app_id`='".$_POST['app_id1']."';";
}
mysql_query( $sql );
?>
关于php - 如果 php mysql 查询中为空,如何不包含输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32548148/