为什么我无法通过PHP脚本将值插入到子表中?

时间:2017-05-02 04:54:35

标签: php mysql mysqli phpmyadmin

我是PHP和MySQL的新手。我只想将用户注册到我的网站(我成功),一旦他们登录,他们就可以捐赠衣服。我有两张桌子 -

用户 -

  • id(int)PRIMARY KEY和AUTO INCREMENT。
  • 名称(varchar)
  • 电子邮件(varchar)
  • 密码(varchar)

衣服 -

  • id(int)PRIMARY KEY和AUTO INCREMENT。
  • user_id(int)FOREIGN KEY
  • Decription(varchar)
  • 图片(varchar)

我想要的是,当用户登录并点击捐赠按钮时,用户将转到此页面 -

        

填充衣服详情

    <form action="clothes.php" method="post" enctype="multipart/form-data">
        <table align="center" width="760px" border="2">

            <td>Clothes Details</td>
            <td><textarea cols="60" rows="10" name="description" ></textarea></td>
            </tr>
            <tr>
                <td>Image</td>
                <td><input type="file" name="image" /></td>
            </tr>
            <tr>
                <td><input type="submit" name="register" value="Submit" ></td>
            </tr>
        </table>
    </form>
</body>
</html>

当用户输入说明并上传图片时,我希望将其存储在我的PhpMyAdmin表中,但需要与用户的id相对应。这是我的PHP脚本 -

<?php
session_start();
include ("includes/db.php");
if (isset($_POST['register'])) {

    $description = $_POST['description'];
    $image = $_FILES['image']['name'];
    $temp = $_FILES['image']['tmp_name'];
    move_uploaded_file($temp, "clothes/$image");
    $insert = "insert into clothes (description, image) values ( '$description', '$image')";
    $run = mysqli_query($con, $insert);
    if ($run) {
        echo "<script>alert('Clothes Successfully Donated')</script>";
    }
}

?>

显而易见,数据未插入表中。当我echo insert查询时,我收到查询insert into clothes (user_id, description, image) values ( 'Jeans', 'HUMBLE. - Single.jpg'),这意味着我的查询正在运行。但我无法弄清楚问题是什么,因为这是我第一次使用外键。我做错了什么?

1 个答案:

答案 0 :(得分:0)

首先,您需要更正代码。

<?php
session_start();
include ("includes/db.php");
if (isset($_POST['register'])) {
    $user_id = $_SESSION['user_id'];
    $description = $_POST['description'];
    $image = $_FILES['image']['name'];
    $temp = $_FILES['image']['tmp_name'];
    move_uploaded_file($temp, "clothes/$image");
    $insert = "insert into clothes (user_id, description, image) values ( $user_id, '$description', '$image')";
    $run = mysqli_query($con, $insert);
    if ($run) {
        echo "<script>alert('Clothes Successfully Donated')</script>";
    }
}
?>

首先,您需要验证是否已在会话中设置登录用户的ID,如果没有,则先设置,然后此代码将正常工作。如果您尚未设置,请设置$ _SESSION ['user_id'] = [登录用户的ID]。

希望这会对你有所帮助。