【发布时间】:2021-07-22 04:00:21
【问题描述】:
我目前正在尝试将图像从我的 HTML 表单上传到 MySQL BLOB 列。
这是我的 HTML 代码的当前相关代码(输入文件类型只是一个占位符,我当然会将其更改为必须的。这些值是表格数据形式,但我将其浓缩为更容易阅读)
<form method="post" action="inspectionprocessing.php">
<input type="text" name ="unit" value="">
<input type="text" name ="notes" value="">
<input type="file" name ="media">
<input type="submit" value="Submit Inspections" name="submit">
</form>
这是插入 MySQL 的代码。
//Establishing variables
$unitNumber = $_POST["unit"];
$unitNotes = $_POST ["notes"];
$unitMedia = $_POST ["media"];
// Create connection
$con = mysqli_connect($host, $username, $password);
// Check connection
if (!$con) {
die("Connection failed: " . mysqli_connect_error());
}
echo "";
//Query database
$sql = "INSERT into inspect.building_1 (Unit, Notes, Media) values ('$unitNumber','$unitNotes', '$unitMedia')";
$inspection = mysqli_query($con, $sql);
这是显示来自数据库的信息的代码
$sql = "SELECT * FROM inspect.building_1 ";
$apartments = mysqli_query($con, $sql);
while($apartment = mysqli_fetch_assoc($apartments)){
echo "<tr>";
echo "<td>" . $apartment ["Unit"] . "</td>";
echo "<td>" . $apartment ["Notes"] . "</td>";
echo "<td>" . $apartment ["Media"] . "</td>";
echo "<td>" . $apartment ["Date"] . "</td>";
echo "<td>" . $apartment ["InspectionID"] . "</td>";
总之,我正在寻找 HTML 代码以将多个图像上传到数据库中一个 InspectionID 下的表中。我需要数据库来存储图像并将它们显示在单独的页面上。我对文件路径完全开放,但我需要所有必要的代码——我是第一次在这里做这一切的初学者。非常感谢您的帮助!
注意:数据库连接一切正常,我只需要图像方面的帮助
【问题讨论】:
-
马上我可以看到您的表单标签丢失了
enctype="multipart/form-data",您在上传文件时需要用到它 -
顺便说一句,您的代码对 SQL 注入是开放的,因为它没有使用准备好的语句或参数化查询。请参阅stackoverflow.com/questions/60174/… 了解更多信息。
-
警告:您对SQL Injections 持开放态度,应该使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。 Escaping is not enough!
-
“但我需要所有必要的代码” - 这不是这个网站的真正运作方式。我们可以帮助您解决现有代码的问题,但我们不是来为您编写的。 manual 有一个关于在 PHP 中处理上传的非常好的教程,并附有适当的解释。我建议你从那里开始。