我创建上传图像并将图像移动到上传文件夹。当有人上传mysql_insert_id()将插入唯一 ID(1、2、3、4、5 等等)和图像扩展名(jpg、gif、png)的图像时,我需要结果如下所示(1. jpg、2.gif、3.png、4.jpg、5.gif、6.png 等等……)
问问题
80 次
1 回答
1
我认为问题在于这段代码:
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error());
$image_id = mysql_insert_id();
$image_file = $image_id.'.'.$extension;
看起来好像你在$image_file
创建之前在 sql 中使用它。试试这个:
$image_file = $image_id.'.'.$extension;
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error());
$image_id = mysql_insert_id();
没有
再次查看您的代码后,我根本看不到您$image_file
在 sql 中使用的设置位置,我注意到您在发布我的答案后使用了返回的 mysql_insert_id ,对于那里的混乱感到抱歉。
我认为您需要$image_file
在 sql 中使用它之前生成它,然后在您想要使用返回的 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 语句中使用列名,所以我使用了通用术语,您需要插入自己的列。
于 2012-12-03T08:28:36.707 回答