我有这个功能,其目的是更新帖子。我有另一个函数从数据库中提取数据并在<form>
标记之间显示,操作将指向update.php文件,其中包括以下内容:
<?php
include_once("functions.php");
$obj = new data_handler;
$obj->update_post($_GET['id']);
?>
然后运行:
public function update_post($id) {
try {
$sql = $this->con->prepare("UPDATE Content SET Title=?, Body=? WHERE id=?");
$sql->bindParam(1, $_POST['title']);
$sql->bindParam(2, $_POST['body']);
$sql->bindParam(3, $id);
$sql->execute();
} catch (PDOException $e) {
echo $e->getMessage();
}
header("Location: index.php");
}
这是拉动内容进行编辑的功能:
public function display_selected ($id) {
$sql = $this->con->query("SELECT * FROM Content WHERE id= '$id'");
while ($row = $sql->fetch()) {
echo $row['Body'];
}
}
这是表格:
<form action="update.php" method="post">
<input type="text" size="105" name="title"></input>
<textarea name="body"><?php $obj = new data_handler; $obj->display_selected($_GET['id']); ?></textarea>
<input type="submit" value="Update"/>
</form>
我没有错误/异常/警告,我可以完成整个过程,但它不会改变任何东西。
答案 0 :(得分:2)
选项1
更改
$obj->update_post($_GET['id']);
到
$obj->update_post($_POST['id']);
并将其添加到您的表单
<input type="hidden" name="id" value="<?=$_GET['id']?>">
值得注意的是:输入标签是自动关闭的,所以最后你不需要。
选项2
变化
<form action="update.php" method="post">
到
<form action="update.php?id=<?=$_GET['id']?>" method="post">