我们有一个简单的文件上传页面可以使用,不起作用的是增加的输入。我们需要输入,因为我们在上传文件时需要一些管理员信息,例如名称等一些其他信息,例如找到文件的位置等等。标记图像的输入工作得很好。唯一的问题是我们没有进入数据库表中的任何条目,我们需要存储图像名称以供以后与我们的Web应用程序一起使用。以下是我们的PHP代码
<?php
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
$servername = 'localhost';
$db_username = 'masterchangedforpublicpost';
$db_pass = 'ChangedforPublicPost';
$dbname = 'ourdatabase';
// Other POST elements
$img_name = $_POST["img_name"];
$style_category = $_POST["style_category"];
$style_found = $_POST["style_found"];
$img_added = $_POST["img_added"];
$conn = new mysqli($servername, $db_username, $db_pass, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Styles (img_name, style_category, style_found, img_added) VALUES ('$img_name', '$style_category', '$style_found', '$img_added');";
if (isset($_POST['submit'])) {
$file = $_FILES['file'];
$fileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileSize = $_FILES['file']['size'];
$fileError = $_FILES['file']['error'];
$fileType = $_FILES['file']['type'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array('jpg', 'jpeg', 'png', 'gif');
if (in_array($fileActualExt, $allowed)) {
if ($fileError === 0) {
if ($fileSize < 200000000) {
$fileNameNew = uniqid('', true).".".$fileActualExt;
$fileDestination = $_SERVER['DOCUMENT_ROOT'].'/styleuploads/';
$moved = move_uploaded_file($fileTmpName, $fileDestination.$img_name.".".$fileNameNew);
header("Location: index.php?uploadyay");
exit;
} else echo "Opps, your file is too big! It needs to be smaller than 200 Megabytes";
} else {
echo "There was an error uploading your file";
}
} else {
echo "You can not upload files of that type";
}
}
?>
正如你可以告诉我们在上传php之前首先把连接和我们想要处理数据条目的php放在php上,因为我们需要首先将img_name添加到作用域。
答案 0 :(得分:2)
您已创建SQL查询,但尚未执行。您在代码中遗漏了类似的内容:
mysqli_query($con,$sql);
您应该查看文档以获取更多信息 - mysqli overview和 example
编辑:评论中已经提到过 - 请保护您的SQL并且永远不要在生产环境中使用这种代码。例如,请参阅PDOStatement::bindParam,这是首选方式。