2012-07-20 104 views
0

我的PHP圖片上傳代碼有一個小問題,我沒有得到正確的文件名保存到我的MySQL數據庫。PHP圖片上傳 - 發現錯誤

請告訴我我做錯了什麼。

PHP

// Upload File to Directory 
$code = md5(time()); 
$image = $_FILES['userfile']['name']; 
$imagename = $code.$image; 
$uploaddir = '../_gallery/' . $imagename; 
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']); 
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); 

MySQL查詢

$sql="UPDATE b_events 
     SET ename = '$event_name', 
      edescription = '$event_description', 
      edate = '$event_date', 
      etime = '$event_time', 
      ecost = '$event_cost', 
      eimage = '$imagename' 
     WHERE id = '$update'"; 
$result=mysql_query($sql); 
+1

什麼結果你希望得到和你得到什麼結果呢? – DonSeba 2012-07-20 10:49:10

+0

即時獲取文件名,試圖用md5重新命名它,文件使用新名稱正確上傳,但沒有正確上傳到數據庫。 – user1540512 2012-07-20 10:52:49

+3

歡迎來到堆棧溢出!請不要將'mysql_ *'函數用於新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這裏是很好的PDO教程](http://goo.gl/vFWnC)。 – 2012-07-20 10:55:31

回答

1

監守你這個名字上傳文件到目錄中,您需要把這個名字插入到你的數據庫

或通過將值分配給新變量

$sql="UPDATE b_events 
      SET ename = '$event_name', 
       edescription = '$event_description', 
       edate = '$event_date', 
       etime = '$event_time', 
       ecost = '$event_cost', 
       eimage = '$uploadfile' 
     WHERE id = '$update'"; 

OR

$file_name =basename($_FILES['userfile']['name']; 

$sql="UPDATE b_events 
      SET ename = '$event_name', 
       edescription = '$event_description', 
       edate = '$event_date', 
       etime = '$event_time', 
       ecost = '$event_cost', 
       eimage = '$file_name' 
     WHERE id = '$update'"; 
+0

我仍然只得到文件名「image.jpg」,它應該像「0fec90395c188efea02300c1dabf7950image.jpg」。 – user1540512 2012-07-20 11:01:00

+0

好的,你需要使用這個變量來插入$ imagename,你通過連接md5和文件 – 2012-07-20 11:04:02

+0

所做的嘗試,在我的文章,不工作,沒有得到全名插入數據庫,只是文件上傳100%正確使用名稱更改而不是數據庫本身。 – user1540512 2012-07-20 11:08:36