如何在特定行中上传 MYSQL 中的照片或文件?

Posted

技术标签:

【中文标题】如何在特定行中上传 MYSQL 中的照片或文件?【英文标题】:How to upload a Photo or a file in MYSQL in a specific row? 【发布时间】:2021-07-14 05:58:47 【问题描述】:

我有一个表格,让我的用户输入他的电子邮件并上传照片。假设我的用户在我的数据库中已经有一封现有的电子邮件,他想上传他的照片。现在的问题是如何做到这一点? 如何获取我的 input type = "email" 的值并将其用于我的查询,如下所示:

$query = "insert into user (Photo) values ('".$file."') where email = "$_GET['email']"";

我尝试了这个查询,但它不起作用我该怎么办?

编辑:这是我的全部代码

<form class = "container" method = "POST" action = "upload.php" enctype = "multipart/form-data">
                <input name = "mang" type = "email" class = "form-control w-75" placeholder="Put Your EMAIL here">
                <center> <input class = "form-control w-75" type = "file" name = "photo">
                <button class = "btn" type = "submit" name = "Upload">Upload</button>
                </form>
<?php
include'connect.php';
// File upload path

if(isset($_POST["Upload"]) && !empty($_FILES["photo"]["name"]))
    $targetDir = "image/";
    $fileName = $_FILES["photo"]["name"];
    $targetFilePath = $targetDir . $fileName;
    $fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
    // Allow certain file formats
    $allowTypes = array('jpg','png','jpeg','pdf');
    if(in_array($fileType, $allowTypes))
        // Upload file to server
        if(move_uploaded_file($_FILES["photo"]["tmp_name"], $targetFilePath))
            // Insert image file name into database
            $insert =$connect->query("insert into user (Photo) values ('".$file."') where email = "$_GET['email']"");
            
            if($insert)
                $statusMsg = "The file ".$fileName. " has been uploaded successfully.";
            
            else
                $statusMsg = "File upload failed, please try again.";
             
        else
            $statusMsg = "Sorry, there was an error uploading your file.";
        
    else
        $statusMsg = 'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.';
    
else
    $statusMsg = 'Please select a file to upload.'; 


// Display status message
print "<p>" .$statusMsg. "</p>";
?>
<div>

</div>

【问题讨论】:

您应该使用$_POST['mang'] 来接收电子邮件吗? 如果你有where子句,你不用insert,你update 【参考方案1】:

您的表单中有一个错误,您使用了方法 POST 并使用了 GET 方法来获取值。所以使用$_POST变量来获取值echo $_POST['email'];

在您的情况下,您的电子邮件字段的名称为 mang,因此请使用 $_POST['mang']; 获取电子邮件字段值。

【讨论】:

以上是关于如何在特定行中上传 MYSQL 中的照片或文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 c# ASP.net 中从 GridView 行进行单按钮照片上传

如何上传照片到网站?

我在百度空间里上传照片时不能显示缩略图,而上传完以后不能显示文件名(我用的是IE7),请问如何解决?

如何从文本文件中用逗号分隔行中的特定行和值

如何删除文件中某些行中的特定字符?

如何在将照片上传到 Firebase 存储时将日期或时间等用户图像详细信息添加到文件名?