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

あなたのINSERTexecute 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 に答える