我有一个表单来编辑MySQL表中的现有值。 其中一个字段存储图像的文件名,(另一个存储图像的文件夹位置) 该文件有一个上传字段,用于上传另一个图像并替换原始图像名称字段中的图像名称。
如果我选择一个文件,这可以正常工作,以替换现有的图像。 如果我不选择替换图像,则该字段为空数据更新。
基本上我是在尝试选择和上传图像时只进行UPDATE sql查询。
我正在使用此代码:
if(!empty($_FILES['file_slick']))
{
$slick = $_FILES['file_slick']['name'];
copy($_FILES['file_slick']['tmp_name'],'../images/product/'.$folder.'/'.$slick);
$sql_slick = "UPDATE tbl_product SET prod_slick = '".$slick."' WHERE prod_id = '".$prodid."'";
mysql_query($sql_slick);
}
我试过if(!empty($ _ POST ['file_slick']))但是都不起作用。如果选择并上载文件,则会将其移动到正确的文件夹,并将图像文件名更新到该字段中。如果未选择图像,则将空数据更新到图像文件名字段中。
我已经浏览过互联网(主要是在这里),从我所看到的情况来看,我的检查可以防止出现空数据。
这里有人能看到什么问题吗?
答案 0 :(得分:4)
尝试if(!empty($_FILES['file_slick']['name']))
答案 1 :(得分:0)
因为$_FILES['file_slick']
是一个多维数组,所以函数empty
返回true,你可以使用$_FILES['file_slick']['error'] == 0
检查图像
答案 2 :(得分:0)
在处理数据库查询的脚本中,就在查询之前,设置文件路径的查询占位符,或者对上载到源自数据库的变量的图像或文件的任何引用。
例如。在我正在做的项目中,它必须显示已存储文件的文件路径。所以我从数据库中取出它并将其保存在某处,以便在查询之前的文件路径为空()然后将其设置为以前的值。
我没有发现任何不利因素,但我确定可能会有一些小问题,因为即使没有新提交,我每次进行更改时都会使用已经存在的内容重写数据库。
我的脚本就像这样
$final_size = size_calc( $upload['size'] );
$file_path = addslashes(UPLOAD_DIR . $name);
if ( empty($file_path) ) $file_path = addslashes( $post['file_path'] );
if ( empty($final_size) ) $final_size = $post['file_size'];
//Perform query
$query = "UPDATE posts SET post_title = '{$post_title}', visible = {$visible}, post_content = '{$post_content}', post_cat_id = '{$post_cat_id}',file_path =
'{$file_path}', file_size = '{$final_size}' WHERE id = {$post_id} LIMIT 1";
$result = mysqli_query( $link , $query );