2017-12-09 6 views
-2

PHPでArrayを使用して複数のファイルを挿入する際に問題が発生しました。未定義オフセット:2 1行に2つのファイルを挿入する

$applications=$_FILES['applications']['name']; 

for($i = 0; $i < count($applications); $i++) 
{ 
    $tmp_name=$_FILES['applications']['tmp_name'][$i]; 
    move_uploaded_file($tmp_name, "ujuri_admin/uploads/applications/$applications[$i]"); 
} 

$send_data="INSERT INTO table (application[],date_now) VALUES ('$applications[$i]', NOW())"; 
+1

$dbPDOインスタンスであると仮定):?あなたのコードは次のようになりますか。 –

+0

私のカラム名はapplication –

+1

です。これについては何も問題ありません。データを挿入する前にすべての値を確認してください。 MySQLは配列の概念を持っていないので、 '[] 'を追加すると動作しません。このエラーは、forループの後に '$ i'を使用しているという事実から来ています(ここでは、countより大きい)。私は、MySQLとPHPで配列がどのように動作するかを読んでみることをお勧めします。 –

答えて

0

あなたは$applications[$i]の現在の正しい値を持つforループ内でクエリを実行する必要があります。

$stmt = $db->prepare('INSERT INTO table (application, date_now) VALUES (?, NOW())'); 
for($i = 0; $i < count($applications); $i++) 
{ 
    $tmp_name=$_FILES['applications']['tmp_name'][$i]; 
    move_uploaded_file($tmp_name, "ujuri_admin/uploads/applications/$applications[$i]"); 
    $stmt->execute(array($applications[$i])); 
} 
$stmt->close(); 

<=あなたのテーブルのカラムが本当に `アプリケーション[]`と呼ばれている(アプリケーション[]、date_now) ``

関連する問題