0

此代码有效,它将多个图像上传到文件夹,但在将图像信息插入数据库时​​,它仅插入 1 个名称。如有任何帮助,我将不胜感激

#target folder
$target = 'image_uploads/';
  if(isset($_FILES['image_name'])===true){
      $files = $_FILES['image_name'];
      for($x = 0 ; $x < count($files['name']); $x++){
          $name = $files['name'][$x] ;
          $temp_name = $files['tmp_name'][$x];
          $move = move_uploaded_file($temp_name,$target.$name);
      }
  }
?>
<?php
try{
    $con = new PDO('mysql:host=localhost;dbname=tish_database;charset=utf-8','root','');
    $query="INSERT INTO tish_images(image_name)
VALUES(:image_name)";
    $insert = $con->prepare($query);
    $insert->execute(array(
                          ':image_name'=>$name));
}catch(PDOException $e){
    echo $e->getMessage();
}
4

3 回答 3

1

我不确定,但您需要在 for 循环中定义插入查询。

于 2013-02-09T10:55:46.080 回答
1

您的INSERT&execute array声明超出了for周期。

于 2013-02-09T10:56:30.073 回答
0

@Devang Rathod 和 @revoua。我非常感谢您的帮助,这是您的帮助之后的代码它按照我想要的方式工作

<?php 
#target folder 
$target = 'image_uploads/';
  if(isset($_FILES['image_name'])===true){
  $files = $_FILES['image_name'];
  for($x = 0 ; $x < count($files['name']); $x++){
  $name = $files['name'][$x] ;
  $temp_name = $files['tmp_name'][$x];  
  $move = move_uploaded_file($temp_name,$target.$name); 
?>
<?php
try{
$con = new PDO('mysql:host=localhost;dbname=tish_database;charset=utf-8','root','');
$query="INSERT INTO tish_images(image_name)
VALUES(:image_name)";
$insert = $con->prepare($query);
$insert->execute(array(
':image_name'=>$name));
}catch(PDOException $e){
echo $e->getMessage();
}
 } 
}
?>
于 2013-02-09T13:08:44.280 回答