“插入”没有保存文件名


Insert Into is not saving file names

谁能让我知道我在这里做错了什么?而更新是工作良好的php5.5插入不保存文件名到数据库…所有其他字段都被保存,没有任何问题。提前谢谢你

 if ($_GET['act']=="Add") {
 $uploaddir = '/pictures/';
          $uploaddir = $uploaddir . basename($_FILES['foto']['name']);
      $file=basename($_FILES['foto']['name']);
         move_uploaded_file($_FILES['foto']['tmp_name'], $uploaddir);
     chmod("$path/pictures/$file",0755);

$title= $_POST['title'];
$intro= $_POST['intro'];
$subtitle= $_POST['subtitle'];
$full= $_POST['full'];
$photodesc= $_POST['photodesc'];
$pq= $_POST['pq'];
$pq2= $_POST['pq2'];
$pq3= $_POST['pq3'];
$pq4= $_POST['pq4'];
$pq5= $_POST['pq5'];
$pq6= $_POST['pq6'];
$pq7= $_POST['pq7'];
$pq8= $_POST['pq8'];
$pq9= $_POST['pq9'];
$pq10= $_POST['pq10'];
$category= $_POST['category'];

$insertquery="INSERT INTO news_publish (`title`, `subtitle`, 
`category`, `intro`, `full`, `pq`, `photo`, `sdate` , `ldate`, `frontpage`, 
`photodesc`, `pq2`, `pq3`, `pq4`, `pq5`,`pq6`, `pq7`, `pq8`,`pq9`,`pq10`) 
values ('$title', '$subtitle', '$category', '$intro', '$full', '$pq', 
'$file', '$sdate', '$ldate', '$frontpage', 
'$photodesc','$pq2','$pq3','$pq4', 
'$pq5','$pq6','$pq7','$pq8','$pq9','$pq10')";
  mysqli_query($connect, $insertquery) or die('Error: ' . mysqli_error($connect));

            echo "Page Added<br>
            Please wait a second, or <a href='"?go=editremove'">click here</a> ";
            echo "<meta http-equiv='"refresh'" content='"1;URL=?go=editremove'">";
    }

OK页面添加现在与一个图像上传工作,但是当我尝试上传多个文件时,它将文件名保存到数据库中,但它将两个图像作为一个图像上传,并将其命名为"image1.jpgimage2.jpg"

这是我上传多个文件的方法

 $uploaddir = $uploaddir . basename( $_FILES['foto']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto2']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto3']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto4']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto5']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto6']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto7']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto8']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto9']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['foto10']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['pdf']['name']);
          $uploaddir = $uploaddir . basename( $_FILES['katalog']['name']);

      $file=basename( $_FILES['foto']['name']);
      $file2=basename( $_FILES['foto2']['name']);
      $file3=basename( $_FILES['foto3']['name']);
      $file4=basename( $_FILES['foto4']['name']);
      $file5=basename( $_FILES['foto5']['name']);
      $file6=basename( $_FILES['foto6']['name']);
      $file7=basename( $_FILES['foto7']['name']);
      $file8=basename( $_FILES['foto8']['name']);
      $file9=basename( $_FILES['foto9']['name']);
      $file10=basename( $_FILES['foto10']['name']);
      $file11=basename( $_FILES['pdf']['name']);
      $file12=basename( $_FILES['katalog']['name']);

                   chmod("$uploaddir/$file",0755);
            chmod("$uploaddir/$file2",0755);
            chmod("$uploaddir/$file3",0755);
            chmod("$uploaddir/$file4",0755);
            chmod("$uploaddir/$file5",0755);
            chmod("$uploaddir/$file6",0755);
            chmod("$uploaddir/$file7",0755);
            chmod("$uploaddir/$file8",0755);
            chmod("$uploaddir/$file9",0755);
            chmod("$uploaddir/$file10",0755);
            chmod("$uploaddir/$file11",0755);
            chmod("$uploaddir/$file12",0755);

    move_uploaded_file($_FILES['foto']['tmp_name'], $uploaddir);
    move_uploaded_file($_FILES['foto2']['tmp_name'], $uploaddir);
    move_uploaded_file($_FILES['foto3']['tmp_name'], $uploaddir);            
    move_uploaded_file($_FILES['foto4']['tmp_name'], $uploaddir);   
    move_uploaded_file($_FILES['foto5']['tmp_name'], $uploaddir);   
    move_uploaded_file($_FILES['foto6']['tmp_name'], $uploaddir);   
    move_uploaded_file($_FILES['foto7']['tmp_name'], $uploaddir);   
    move_uploaded_file($_FILES['foto8']['tmp_name'], $uploaddir);   
    move_uploaded_file($_FILES['foto9']['tmp_name'], $uploaddir);   
    move_uploaded_file($_FILES['foto10']['tmp_name'], $uploaddir);  
    move_uploaded_file($_FILES['pdf']['tmp_name'], $uploaddir); 
    move_uploaded_file($_FILES['katalog']['tmp_name'], $uploaddir); 

$file11$file12在您所展示的脚本中没有定义,但它们用作要插入到数据库中的值。

你想更新:

$pdf= $_POST['file11'];
$catalog= $_POST['file12'];

,因为您插入的变量不是这里声明的变量。

你的整体方法也充满了安全风险和缺陷,Jay Blanchard评论中给出的链接都应该阅读并接受。

编辑:

好,那么值没有被插入数据库的可能原因:

  • 做一个print_r($file);,看看MySQL运行前的值是什么。这是你所期望的吗?

  • 你检查了你的数据库SQL列是正确的类型,你没有试图插入一个字符串值到一个整数列或类似的

  • 检查你的列上没有键阻止你插入非唯一数据(我知道这是非常,非常不可能为你的MySQL使用水平,但是…)。

  • 按照Fred-ii-提到的做,并在页面上设置一些错误报告。例如with:error_reporting(E_ALL); ini_set('display_errors', 1);

  • 检查$_FILES['foto']['error']值是否为零。你的表单在HTML中正确设置接受文件上传吗?如果你不确定,请谷歌"如何上传文件与HTML表单"。

  • 正如Fred-ii-提到的,您需要使用$_POST $_GET变量,但不能两者都使用,如果您正在发布表单,则不应该在命令行中使用GET变量。澄清表单操作。

最后:

一旦你确定你需要设置你的enctype="multipart/form-data",那么你真的,真的需要阅读如何正确使用PHP,以及关闭脚本上的各种安全漏洞,然后实现更干净,更整洁的代码,使我们所有人将来的调试更容易。