用户登录后如何在表中插入用户ID

时间:2019-05-21 12:34:04

标签: php mysql

我得到了包含用户和图片表的MySQL数据库。然后,我创建了一个upload.php页面,我登录的用户可以在其中上传图片,这些图片随后被存储(ID,名称,路径和user_fk)到数据库中。但是,它向我显示了错误。名称和图像输入效果很好,但是在尝试插入用户ID后,ID效果不佳。

错误提示:

  

PDOException:SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(pinterestpictures,CONSTRAINT pictures_ibfk_1 FOREIGN KEY( /Applications/MAMP/htdocs/pinterest/upload.php:23中的user_fk)参考usersuser_id)):堆栈跟踪:#0 / Applications / MAMP / htdocs / pinterest / upload .php(23):PDOStatement-> execute()#1 {main}成功

<?php
session_start();
require_once __DIR__.'/connect.php';
require_once 'top.php';
$sUserId = $_SESSION['txtUsername'];
?>
<div class="bigTitle"><h2>Welcome <?php echo $sUserId ?> here you can upload your pictures.</h2></div>

<?php
require_once __DIR__.'/connect.php';
if(isset($_POST['submit']))
{
    $sName = $_POST['name'];
    $img = $_FILES['image']['name'];
    $sUserId = $_SESSION['txtUsername'];

    try{
        $stmt = $db->prepare('INSERT INTO pictures VALUES (null, :sName, :sImage, :sUserId)');
        $stmt->bindValue(':sName', $sName);
        $stmt->bindValue(':sImage', $img);
        $stmt->bindValue(':sUserId', $sUserId);

        $stmt->execute();

    }catch (PDOEXception $ex){
        echo $ex;
    }
    move_uploaded_file($_FILES['image']['tmp_name'], "images/$img");
    echo 'Success';
}

?>

<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="text" name="name" placeholder="name">
<input type="file" name="image" placeholder="image upload">
<input type="submit" name="submit" value="Upload the picture">
</form>
?>

我很好奇会话或数据库中的表是否有问题。

0 个答案:

没有答案