PHP更新功能无法正常工作

时间:2013-01-17 10:27:10

标签: php mysql database function content-management-system

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

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

1 个答案:

答案 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">