-1
私はデータベースにコメントを挿入しようとしていますが、動作しません。既存のコメントを表示する選択は、データベースに値を手動で入力すると機能します。私は間違って何をしていますか?テーブル 'comments'の列は、ユーザー名、レビューのファイルパスに基づいて別のテーブルから取得したfilm_id、および投稿された日付です。私のデータベースにコメントが挿入されていません
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<div class="commentdiv">
<form method="post" action="">
Comment:<br>
<textarea name='message' id='message'></textarea><br/>
<br>
<input type="submit" name="comment" value="Comment">
<br>
</form>
</div>
<?php
date_default_timezone_set('America/Curacao');
$db = new PDO('mysql:host=localhost;dbname=dbase', 'username', 'password');
if(isset($_POST['comment'])){
if(empty($_POST['message'])){
echo "There's no message";
} else {
if(isset($_SESSION['loggeduser'])){
$message = $_POST['message'];
$datum = date('YmdHis');
$username = $_SESSION['loggeduser'][0];
$path = $_SERVER['REQUEST_URI'][0];
try {
$zoekfilm = $db->prepare("SELECT film_id FROM Reviews WHERE path = :path");
$zoekfilm->bindParam("path", $path);
$zoekfilm->execute();
$film = $zoekfilm->fetch();
} catch(PDOException $b){
die("Error!: " . $b->getMessage());
}
try{
$addcomment = $db->prepare("INSERT INTO comments(Usernames, film_id, comments, date) VALUES (:username, :id , :comment, :datum)");
$addcomment->bindParam("username", $username);
$addcomment->bindParam("id", $film_id);
$addcomment->bindParam("comment", $message);
$addcomment->bindParam("datum", $datum);
$addcomment->execute();
} catch(PDOException $c){
die("Error!: " . $c->getMessage());
}
} else {
header("Location: signin.php");
}
}
}
try {
$showcomments = $db->prepare("SELECT * FROM comments ORDER BY date");
$showcomments->execute();
while($result = $showcomments->fetch(PDO::FETCH_ASSOC)){
echo '<div class="comment" style="border: 2px solid black;">';
echo '<p>'.$result['Usernames'].' </p>';
echo '<p> '.$result['comments'].'</p>';
echo '<p> Posted:'. $result['date'] .'</p>';
echo '</div>';
}
} catch(PDOException $a){
die("Error!: " . $a->getMessage());
}
?>
</body>
</html>
エラーメッセージはありますか?どのように/ $ film_idは設定されていますか? –
'$ film_id'は' $ film'として宣言されています – fyrye
これは2つの異なる変数です。ですから、$ film_idはnull(そうでなければ設定されていない可能性があります)であり、挿入が失敗する可能性がありますか?あなたはおそらく、$ filmと$ film_idを使用することを意味しませんでした。 –