【发布时间】:2014-02-12 13:10:29
【问题描述】:
我不知道为什么我的代码不起作用。我正在尝试使用表单中的常规输入将动态变量插入到我的数据库中的表中。
这样,这是我的查询代码:
if (isset($_POST['submit'])) {
// Check if movie allready is added.
$stmt = $dbh->prepare("SELECT * FROM watchlist WHERE movie_title='{$_POST['$title']}'");
$stmt->bindParam(':movie_title', $_POST[$movie->title]);
$stmt->execute();
$rows = $stmt->fetchALL();
$n = count($rows);
if($n > 0){
echo 'Du är redan peppad på filmen!';
}
$sql = $dbh->prepare("INSERT INTO watchlist(movie_title, movie_des, movie_link)
VALUES ('{$_POST['title']}', '{$_POST['description']}', '{$_POST['link']}'");
$sql->bindParam(':title', $_POST['title']);
$sql->bindParam(':description', $_POST['description']);
$sql->bindParam(':link', $_POST['link']);
$sql->execute();
header("Location: ../index.php");
exit;
}
这是我的表格:
$title = $movie->title;
$description = $movie->description;
$link = $movie->link;
echo '<div class="view">';
echo '<h3>' . $title . '</h3>';
echo $description . '<br/>';
echo '<a href="'. $link . '" target="_blank">Läs mer...</a><br/><br/>';
echo '<a href="index.php">Tillbaka</a>';
echo '<div class="form_dis"></div>';
echo '<div class="form_content">';
echo '<form action="queries/insert.php" method="post">',
'<input type="hidden" name="title" value="$title">',
'<input type="hidden" name="description" value="$description">',
'<input type="hidden" name="link" value="$link">',
'<input type="submit" name="submit" value="Peppa!">',
'</form></div>';
我返回到我的索引页面,但没有任何内容添加到数据库中,我就是不知道为什么。我丢失的代码有什么问题吗?
【问题讨论】:
-
使用此答案获取 PDO 错误:stackoverflow.com/questions/3999850/pdo-error-message
-
您的绑定与您的列名不匹配。即:
':title'应该是':movie_title'等。 -
@Fred-ii- 我试过了,但还是不行。 @Hast 我在执行后尝试使用代码
print_r($sql->errorInfo())并拿走了标头,没有收到错误消息,我在我的dbconnection 中得到了PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING。 -
还可以尝试将
'{$_POST['title']}'更改为'{$_POST[title]}'等。 -
@Fred-ii- 我尝试更改它,但仍然没有运气。至少现在错误消息正在工作,所以我会尝试调试它。
标签: php variables input pdo insert