如何将具有其他功能的相同表单的图像上传到数据库?

时间:2015-04-14 09:44:43

标签: php mysql

这是我的代码,我想上传图片以及其他信息,如电子邮件密码等,但它无效。

<?php
$target_dir = "uploads/";
include("include/connect.php");
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
        $name = $_POST['name'];
        $email = $_POST['email'];
        $password = $_POST['password'];
        $repassword = $_POST['repassword'];
        $sql="INSERT INTO student ('name', 'email',    'password','repassword','pic')
        VALUES ('name' , 'email' ,'password' ,'repassword' ,'pic')";

        $res=mysqli_query($con,$sql);
        var_dump($res);

    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    } 
}
?>

这是我的代码,但无效。

修改

From a comment by OP

<form action="upload.php" enctype="multipart/form-data" id="insert" method="post" name="insert">
    USERNAME:<input name="name" type="text" value=""><br>
    EMAIL-ID:<input name="email" type="text" value=""><br>
    PASSWORD:<input name="password" type="password" value=""><br>
    RE-PASSWORD:<input name="repassword" type="password" value=""><br>
    <br>
    <input id="fileToUpload" name="fileToUpload" type="file"><br>
    <input name="hdn" type="hidden" value="hdn"><br>
    <input name="submit" type="submit" value="submit"><br>
</form>

2 个答案:

答案 0 :(得分:0)

您的查询在2分上不正确;

  • 您引用的是列名
  • 您使用的是静态值(不正确,因为在这种情况下,您的值应该是动态的)

引用列名称

以下将导致查询错误 - 因此您的查询将不会执行,并且记录将插入到数据库中。

INSERT INTO student ('name', 'email','password','repassword','pic')

如果要引用列名,请使用反引号(`)。

INSERT INTO student (`name`, `email`,`password`,`repassword`,`pic`)

静态值

您正在插入静态值。使用你的变量。

$sql="INSERT INTO student (`name`, `email`,    `password`,`repassword`,`pic`)
        VALUES ('{$name}' , '{$email}' ,'{$password}' ,'{$repassword}' ,'{$pic}')";

注意:非常不安全,你应该是;

答案 1 :(得分:-1)

如果您的查询中有任何错误,请检查以下功能。

mysqli_error($con);

使用以下代码上传文件。

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {<br/>
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has <br/>been uploaded.";
    } else {<br/>
        echo "Sorry, there was an error uploading your file.";<br/>
    }