如何使用输入将php变量插入到数据库表中?
我不明白为什么我的代码不起作用。我正在尝试使用表单中的常规输入向数据库中的表插入一个动态变量 这样,下面是我的查询代码:如何使用输入将php变量插入到数据库表中?,php,variables,input,pdo,insert,Php,Variables,Input,Pdo,Insert,我不明白为什么我的代码不起作用。我正在尝试使用表单中的常规输入向数据库中的表插入一个动态变量 这样,下面是我的查询代码: if (isset($_POST['submit'])) { // Check if movie allready is added. $stmt = $dbh->prepare("SELECT * FROM watchlist WHERE movie_title='{$_POST['$title']}'");
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>';
$title=$movie->title;
$description=$movie->description;
$link=$movie->link;
回声';
回显“”$头衔";;
回显$description。”
;
回音“
”;
回声';
回声';
回声';
回音“,
'',
'',
'',
'',
'';
我被发送回我的索引页面,但数据库中没有添加任何内容,我就是不知道为什么。我的代码有什么问题吗?请尝试一下:
if (isset($_POST['submit'])) {
$sql_1 = "INSERT INTO watchlist (movie_title,
movie_des,
movie_link
) VALUES (
:movie_title,
:movie_des,
:movie_link)";
$sql = $dbh->prepare($sql_1);
$sql->bindParam(':movie_title', $_POST['title']);
$sql->bindParam(':movie_des', $_POST['description']);
$sql->bindParam(':movie_link', $_POST['link']);
$sql->execute(array(':movie_title' => $_POST['title'],':movie_des' => $_POST['description'],':movie_link' => $_POST['link']));
if($sql != false) {
echo "Success!";
} else {
echo "An error occured saving your data!";
}
// header("Location: ../index.php");
// exit;
}
使用此答案获取PDO错误:绑定与列名不匹配。例如:
”:title“
应该是”:movie_title“
等等@Fred ii-我已经试过了,但仍然不起作用。还有@Hast我在执行后尝试过使用代码print\r($sql->errorInfo())
,并且去掉了头,没有收到错误消息,我在数据库连接中得到了PDO::ATTR\u ERRMODE,PDO::ERRMODE\u警告
。同时尝试将{$\u POST['title']}
更改为{$\u POST[title]}“
等@Fred ii-我试着改变它,但还是没有成功。错误消息现在至少起作用了,所以我将尝试调试它。这是可行的,但奇怪的是它在我的数据库中插入了实际的变量,而不是变量引用的数据。因此,它不是在我的数据库中插入“蝙蝠侠电影”,而是插入$title。我猜这与我发布的代码无关。我的应用程序一定是出了什么问题,这是…嗯。。。我认为这可能与您的隐藏值有关。@bondenn您可以尝试更改$sql->bindParam(':movie\u title',$\u POST['title')
到$sql->bindParam(':movie_title',$\u POST['title',PDO::PARAM_STR)代码>以查看它是否能启动@Bondenn并尝试删除value=“$title”
alsoI将尝试此操作并让您知道!哇,我修好了!通过将value=“$title”
更改为value=“.”.$title.“
:)