gpt4 book ai didi

php更新查询不会使用pdo更新

转载 作者:行者123 更新时间:2023-11-29 01:27:56 25 4
gpt4 key购买 nike

我有一个 edit.php 文件,如下所示。该页面通过 GET['id'] 以一种形式显示博客文章,以编辑该文章的标题和正文。提交 editPostForm 时,它应该用新内容更新数据库并重定向回/posts/页面。重定向有效,但在查看帖子时,博客帖子没有任何变化。

我做错了什么?

$post = isset($_GET['id']) ? $_GET['id'] : '';

if (isset($_GET['id']))
{
$id = $_GET['id'];
$sql = "SELECT * FROM posts WHERE id = ?";
$results = $db->prepare($sql);
$results->bindValue(1, $id);
$results->execute();
$post = $results->fetch(PDO::FETCH_ASSOC);
}

if (isset($_POST['editPostForm']))
{
$title = $_POST["title"];
$body = $_POST["body"];
$id = $_GET['id'];

$stmt = $db->prepare("UPDATE posts SET title = ?, body = ? WHERE id = ?");
$stmt->bindParam(1, $title);
$stmt->bindParam(2, $body);
$stmt->bindParam(3, $id);
$stmt->execute();

header("Location: posts");
}

$twigContext = array(
"post" => $post
);

echo $twig->render('edit.html.twig', $twigContext);

HTML 文件:

  <div class="wrapper">
<form method="post" action="edit.php" class="editComposeForm">
<h2>Edit Post</h2>
<input type="text" value="{{ post.title }}" name="title"><br>
<textarea name="body">{{ post.body }}</textarea><br>
<input type="submit" value="Update" name="editPostForm">
</form>
</div>

最佳答案

html 表单没有带有您试图在 php 代码中访问的名称 id 的输入。您可以将其添加为隐藏的表单元素(下面的第一个示例)或作为 action 属性中的查询字符串的一部分(下面的第二个示例)。

将其添加为隐藏的表单元素:

  <div class="wrapper">
<form method="post" action="edit.php" class="editComposeForm">

<input type="hidden" value="{{ post.id }}" name="id">

<h2>Edit Post</h2>
<input type="text" value="{{ post.title }}" name="title"><br>
<textarea name="body">{{ post.body }}</textarea><br>
<input type="submit" value="Update" name="editPostForm">
</form>
</div>

在 php 中

$id = $_POST['id'];

或将其添加到操作属性中的查询字符串中。

  <div class="wrapper">
<form method="post" action="edit.php/id={{ post.id }}" class="editComposeForm">
<h2>Edit Post</h2>
<input type="text" value="{{ post.title }}" name="title"><br>
<textarea name="body">{{ post.body }}</textarea><br>
<input type="submit" value="Update" name="editPostForm">
</form>
</div>

在 php 中

$id = $_GET['id'];

关于php更新查询不会使用pdo更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31776730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com