我想编写一个将文件名上传到数据库的php代码。我希望能够先上传文件名。所以稍后我可以查找它的名字并调出文件。这就是我到目前为止所拥有的 HTML代码:
<html>
<form method="post" action="image_record.php" enctype="multipart/form-data">
<p>
Please Enter the Member Name.
</p>
<p>
Member or Affiliates Name:
</p>
<input type="text" name="nameMember"/>
<p>
Upload File
<input type="file" name="file"><br><br>
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
<br/>
</form>
</html>
<html>
<head>
</head>
<body>
<?php
$name = $_POST["nameMember"];
$con = mysql_connect("localhost","root","password");
if (!$con) {
die("can not connect: " . mysql_error());
}
mysql_select_db("snippets",$con);
if(isset($_POST['submit']))
{
$file_name = $_FILES["file"]["name"];
//echo $file_name
$query="INSERT INTO value (file) VALUES ('".$file_name."')";
}
mysql_query($query,$con);
mysql_close($con);
?>
</body>
</head>
</html>
好的,所以它将文件上传到myphp admin,但不是文件名。这很好,但我如何从PHP代码调用文件名?
答案 0 :(得分:1)
停止使用mysql_ deprecated个功能
image_record.php
中的
if(isset($_POST['submit']))
{
$file_name = $_FILES["file"]["name"];}
//echo $file_name
$query="insert into your_table_name (column_name) values('".$file_name."')";
$res=mysql_query($sql,$query);
}
答案 1 :(得分:0)
首先 ,我测试了你的代码并确实将文件名插入我的数据库。
我的file
列设置为VARCHAR(255)
。
现在,如果您想在上传后显示文件名,请使用以下内容:(假设您正在询问的内容)。
$result = mysql_query("SELECT * FROM value");
while($row = mysql_fetch_array($result))
{
echo '<p>'.$row['file'].' </p>';
}
以上代码将在您上传后显示该行中的所有文件。
如果您希望仅将其限制为一个,请使用LIMIT 1
例如:
$result = mysql_query("SELECT * FROM value LIMIT 1");
while($row = mysql_fetch_array($result))
{
echo '<p>'.$row['file'].' </p>';
}
如果要仅显示限制为1的第一条记录,请使用:
SELECT * FROM value ORDER BY file ASC LIMIT 1
如果您只想显示限制为1的最后一条记录,请使用:
SELECT * FROM value ORDER BY file DESC LIMIT 1
如果您不想限制显示的记录数量,那么只需删除LIMIT 1
但是,如果您希望稍后检索上传的文件,则无法实际上传该文件。
您需要使用move_uploaded_file()
功能。