Php 试图从数组中提取文件名并插入数据库

Php 试图从数组中提取文件名并插入数据库,php,mysql,forms,upload,Php,Mysql,Forms,Upload,我编写了一些文件上传php代码,可以上传多个文件,在循环中重命名它们,并在表单上提交数据 我现在正试图提取上传的文件名并将其插入数据库中,但目前我甚至难以在表单完成后回显它们 有人能帮我获取新文件名并将数据输入数据库吗 这是我的一些代码 <?php if(isset($_POST['submit'])){ // Variables for date&Time logs $dateLog = date("y-m-d"); // DATE OF ADDITION $timeLog

我编写了一些文件上传php代码,可以上传多个文件,在循环中重命名它们,并在表单上提交数据

我现在正试图提取上传的文件名并将其插入数据库中,但目前我甚至难以在表单完成后回显它们

有人能帮我获取新文件名并将数据输入数据库吗

这是我的一些代码

<?php
if(isset($_POST['submit'])){ 

// Variables for date&Time logs
$dateLog = date("y-m-d"); // DATE OF  ADDITION
$timeLog = date("H:i:s", time() - 3600);   // TIME OF ADDITION 

// INSERT QUERY
$sql="INSERT INTO $table1 (firstname, lastname, companyname, phone, email, name, make, serial, catagory, price, location, description, sold, operational, year, clear, rip, version, service, dock, loading, available, extras, dateadded, featured)
VALUES
('$_POST[firstname]',
'$_POST[lastname]',
'$_POST[companyname]',
'$_POST[phone]',
'$_POST[email]',
'$_POST[name]',
'$_POST[make]',
'$_POST[serial]',
'$_POST[catagory]',
'$_POST[price]',
'$_POST[location]',
'$_POST[description]',
'No',
'$_POST[operational]',
'$_POST[year]',
'$_POST[clear]',
'$_POST[rip]',
'$_POST[version]',
'$_POST[service]',
'$_POST[dock]',
'$_POST[loading]',
'$_POST[available]',
'$_POST[extras]',
'$dateLog',
'No')";


$query = mysql_query($sql) or die("Cannot query the database.<br>" . mysql_error());

// start of image upload
$insert_id = mysql_insert_id() or die("Unable to get insert id for image name.<br>" . mysql_error());

extract($_POST);
    $error=array();
    $extension=array("jpeg","jpg","png","gif");
    foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name)
            {
                $file_name=$_FILES["files"]["name"][$key];
                $file_tmp=$_FILES["files"]["tmp_name"][$key];
                $ext=pathinfo($file_name,PATHINFO_EXTENSION);
                if(in_array($ext,$extension))
                {
                    if(!file_exists("../images/listings/".$file_name))
                    {
                        $filename=basename($file_name,$ext);
                        $newFileName=$insert_id."_".mt_rand(1, 99999).".".$ext;
                        move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"../images/listings/".$newFileName);
                    }
                    else
                    {
                        $filename=basename($file_name,$ext);
                        $newFileName=$filename.mt_rand(1, 99999).".".$ext;
                        move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"../images/listings/".$newFileName);
                    }
                }
                else
                {
                    array_push($error,"$file_name, ");
                }
            }
// end of image upload
//echo '<p>This item was added successfully</p>';
  print_r($newFileName);

}
?>

在php字符串和数组中,使用{$\u POST['field']}

试一试


并且,检查isset($\u POST['field'])是否是一个好主意。

警告:这是非常不安全的,因为这些参数不是。千万不要将
$\u POST
数据直接放入查询:它会创建一个巨大的
mysql\u query
是一个过时的接口,不应该使用,它正在从PHP中删除。一个现代的替代品。像这样的指南解释了最佳实践。我目前正试图将所有过时的代码更改为PDO,但这次代码存储在本地服务器上,希望远离公共用途。;)“希望”是这里的词,因为这是放射性代码。
1: Upload : <input type="file" name="files[]"/><br />
2: Upload : <input type="file" name="files[]"/><br />
3: Upload : <input type="file" name="files[]"/><br />
4: Upload : <input type="file" name="files[]"/><br />
$sql="INSERT INTO $table1 (firstname, lastname, companyname, phone, email, name, make, serial, catagory, price, location, description, sold, operational, year, clear, rip, version, service, dock, loading, available, extras, dateadded, featured)
VALUES
('{$_POST['firstname']}',
'{$_POST['lastname']}'
.... continue