如何使用PHP选择存储在数据库中的数据

时间:2018-06-30 08:29:08

标签: php html mysql database

我面临的问题是我想读取一个自动增加并使用的值,我的数据库采用以下设计:

|   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

2 个答案:

答案 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);

通过这种方式,用户上传的图片将始终具有唯一的名称。

尝试一下,让我知道您是否遇到任何问题