2012-12-03 63 views
0

我創建上傳圖片並移動圖片上傳文件夾。當有人上傳圖像,mysql_insert_id()將插入唯一的id(1,2,3,4,5等等....)和圖像擴展名(jpg,gif,png),我需要的結果看起來像這樣( 1.jpg,2.gif,3.png,4.jpg,5.gif,6.png等等.......)錯誤上傳到Mysql數據庫

+0

你能否讓問題更清楚?目前還不清楚你的問題究竟是什麼。 – tiago

回答

1

我覺得問題出在這個位代碼:

mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error()); 
$image_id = mysql_insert_id(); 
$image_file = $image_id.'.'.$extension; 

看起來好像你在一直在創建之前在SQL中使用$image_file ..試試這個:

$image_file = $image_id.'.'.$extension; 
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error()); 
$image_id = mysql_insert_id(); 

呃沒有

之後再看看你的代碼,我不能看到你在SQL中設置$image_file可言,我注意到你用返回的mysql_insert_id發佈我的回答後,遺憾的混亂那裏。

我想你需要在sql中使用它之前生成$image_file,並且在你希望使用返回的mysql_insert_id之後再次生成它。

$image_file = $_FILES['image']['name']; 
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error()); 
$image_id = mysql_insert_id(); 

此外

當你正在重命名你還需要創建記錄後更新數據庫中存儲的圖像文件名的文件:

$image_file = $_FILES['image']['name']; 
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error()); 
$image_id = mysql_insert_id(); 
$image_file = $image_id . '.' . $extension; 
move_uploaded_file($_FILES["image"]["tmp_name"], "upload/".$image_file); 
mysql_query("UPDATE users SET image_column = '{$image_file}' WHERE id_column = {$image_id}") or die(mysql_error()); 

因爲你沒有使用你的sql語句中的列名我已經使用了通用術語,你需要插入你自己的列。

+0

那麼上面插入查詢時'$ image_id'的值是什麼? – GBD

+0

@GBD是的,我在那裏有點困惑! – Dale

+0

現在你是對的,但後成功上傳文件..他需要更新圖像文件名爲db – GBD