我面临的问题是我想读取一个自动增加并使用的值,我的数据库采用以下设计:
| id | category | image | | 13 | paper | 0 |id是auto_incremented,我想做的是生成id并将其用作image中的值,然后上传一个文件,其名称为image中存储的数字,在此示例中,image将更改为13,文件将的名称为13.jpg。 我通过执行以下操作
mysql_query("INSERT INTO category (category,image) VALUES ('$name','$default_item')");
开始了我的代码:$ name由用户编写,而$ default_item始终为零,我想要做的是使用update将图像更改为相等的id并上传像这样的图像{{1} }
其中$ id是数据库中的ID
答案 0 :(得分:0)
需要提及的几件事:
您不应再使用mysql_query
。请改用mysqli_query
。 mysql_ *已过时,并已在最新的PHP版本中删除。
第二:永远不要在SQL查询中直接使用用户生成的内容。使用prepared statement。否则,您的网站容易受到SQL注入的攻击。</ p>
关于获取自动增量值-参见this thread。
答案 1 :(得分:0)
不要使用自动增量id作为图像名称。 我将建议生成图像的唯一名称,并将该名称插入数据库中,并使用该名称上传图像。 使用下面的代码创建图像名称
$uniquesavename = time().uniqid(rand());
mysql_query("INSERT INTO category (category,image) VALUES ('$name','$uniquesavename')");
$image_name = $uniquesavename . '.jpg'
move_uploaded_file($_FILES["image"]["tmp_name"], "../images/category/" . $image_name);
通过这种方式,用户上传的图片将始终具有唯一的名称。
尝试一下,让我知道您是否遇到任何问题