0

我有这个功能,它的目的是更新一个帖子。我有另一个函数,它从数据库中提取数据并在<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>

我没有收到任何错误/异常/警告,我可以完成整个过程,但它不会改变任何东西。

4

1 回答 1

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">
于 2013-01-17T11:02:55.293 回答