2013-06-12 106 views
1

我有一個關於PHP數組的問題,並將它們作爲單個記錄插入到MySQL數據庫中。我已經對數組進行了排序,並且按照它的工作方式進行工作將PHP數組添加到MySQL中並添加其他列

這是我對陣列:

$files = array(); 
      foreach($_FILES['file']['tmp_name'] as $key => $tmp_name) 
      { 
       $files[$key] = array 
       (
        $file_name = $_FILES['file']['name'][$key], 
        $file_type=$_FILES['file']['type'][$key], 
        $file_size =$_FILES['file']['size'][$key], 
        $file_tmp =$_FILES['file']['tmp_name'][$key]       
       ); 
      } 

這是我對陣列中的數據庫將它們插入作爲單獨的行:

$new = array(); 
      foreach($files as $key => $value) 
      { 
       $new[] = "'".implode("','", $value)."'"; 
      } 
      $query = "(".implode("), (",$new).")"; 
      $sqlone = "INSERT INTO files (filename, filetype, filesize, filetempname) VALUES ".$query.""; 
      if (!mysql_query($sqlone, $conn)) 
      { 
       die("Error: " . mysql_error()."."); 
      } 

我的問題運行到這是:我想添加額外的信息到查詢,但我不完全知道如何做到這一點。

我希望能夠添加對文件附加到的電子郵件的引用。我基本上希望查詢如下:

$sqlone = "INSERT INTO files (filename, filetype, filesize, filetempname, mailid //this is the extra column in the database) VALUES ".$query.", '1'// this is the corresponding value"; 

我到運行中的問題是,我想額外信息添加到它的時候得到一個錯誤。

有沒有人可以給我的指針?

在此先感謝

+1

它看起來是正確的。你遇到了什麼錯誤?我真的建議遠離mysql_ *函數,因爲它們已被棄用,並且在將來的版本中不起作用。請改用PDO或MySQLi。 – aynber

+0

@aynber這是我得到的錯誤:您的SQL語法中有錯誤;請檢查與您的MySQL服務器版本對應的手冊,以在第1行的''1''附近使用正確的語法。 我將使用mysqli進行調查,我只是試圖讓此工作爲 – Chris

+1

Echo out $ sqlone在運行mysql_query之前,確保它看起來正確。 – aynber

回答

1

只要改變其中添加您的括號(並註明您的輸入):

$query = "('".implode("'), ('",$new); 
$sqlone = "INSERT INTO files (filename, filetype, filesize, filetempname, mailid) VALUES ".$query."', '1')"; 

應導致SQL:

INSERT INTO files (filename, filetype, filesize, filetempname, mailid) VALUES 
('<file_name>', '<file_type>', '<file_size>', '<file_tmp_name>', '1')