【发布时间】:2019-07-25 04:01:58
【问题描述】:
我创建了一个表单并希望将所有信息存储在 PHPMyAdmin 中。我设法存储了其他信息,但没有存储图像文件。 PHPMyAdmin 中的 image 列下没有任何内容,即使在我提交表单时它声明已提交。
form2.php
<!DOCTYPE html>
<html>
<head>
</head>
<h1>Found Items Handover</h1>
<br>
<div class="container">
<div class="row">
<h2>1. Details of Handover Personnel </h2>
</div>
<form action="insert2.php" method="post" enctype="multipart/form-data">
<div class="row input-container">
<div class="col-md-6 col-sm-12">
<div class="styled-input">
<input type="text" name="name"required />
<label>Staff Name</label>
</div>
</div>
<div class="col-md-6 col-sm-12">
<div class="styled-input" style="float:right;">
<input type="text" name="staffno" required />
<label>Staff Number</label>
</div>
</div> <br>
<div>
<label>Attachment:</label><input type='file' name='file'><br>
</div>
</div>
<br><input type="submit" name="submit" value="submit">
</form>
inser2.php
<?php
$con= mysqli_connect('127.0.0.1','root','','satsform1');
if(!$con)
{
echo 'Not Connected To Server';
}
if(!mysqli_select_db($con,'satsform1'))
{
echo 'Database Not Selected';
}
$name = $_POST['name'];
$staffno = $_POST['staffno'];
$sql = "INSERT INTO handover (name,staffno)
VALUES ('$name','$staffno')";
if(isset($_POST['submit'])){
$name = $_FILES['file']['name'];
$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
// Select file type
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Valid file extensions
$extensions_arr = array("jpg","jpeg","png","gif");
// Check extension
if( in_array($imageFileType,$extensions_arr) ){
// Insert record
$query = "insert into images(name) values('".$name."')";
mysqli_query($con,$query);
// Upload file
move_uploaded_file($_FILES['file']['tmp_name'],$target_dir.$name);
}
}
if(!mysqli_query($con,$sql))
{
echo 'Not Submitted';
}
else
{
echo 'Submitted';
}
?>
我希望在提交表单时将图像的 URL 存储在 PHPMyAdmin 中。
【问题讨论】:
-
你不能存储在phpmyadmin中。它是基于 Web 的 MySQL 浏览器的名称。
-
你的代码有什么问题?有任何错误信息吗?
-
顺便了解一下prepared statements以防止sql注入。
-
在不了解数据库结构的情况下调试代码有点困难。首先,请尝试检查
in_array($imageFileType, $extensions_arr)条件并确保它正常工作,然后请检查insert into images(name) ...查询,请在此查询中添加一些虚拟数据并确保那里一切正常。
标签: php sql phpmyadmin