我得到了包含用户和图片表的MySQL数据库。然后,我创建了一个upload.php页面,我登录的用户可以在其中上传图片,这些图片随后被存储(ID,名称,路径和user_fk)到数据库中。但是,它向我显示了错误。名称和图像输入效果很好,但是在尝试插入用户ID后,ID效果不佳。
错误提示:
PDOException:SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(
pictures
,CONSTRAINTpictures_ibfk_1
FOREIGN KEY( /Applications/MAMP/htdocs/pinterest/upload.php:23中的user_fk
)参考users
(user_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>
?>
我很好奇会话或数据库中的表是否有问题。