[英]how to edit the last inserted data in mysql database?
嗨,大家好,我在这里要做的就是能够更新原始评论。 但是按照我的代码现在的样子,它只是不断添加具有新行ID的新内容。 如何删除具有相同行ID的原始内容,并使用新内容进行更新?
<?php
require 'classes/Database.php';
$database = new Database;
$post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
if(isset($post['submit'])){
$title = $post['title'];
$body = $post['body'];
$database->query('INSERT INTO posts (title, body) VALUES(:title, :body)');
$database->bind(':title', $title);
$database->bind(':body', $body);
$database->execute();
if($database->lastInsertId()){
echo '<p>Post Added!</p>';
}
}
if(isset($post['submit'])){
$id = $database->lastInsertId();
$title = $post['title'];
$body = $post['body'];
$database->query('UPDATE posts SET title = :title, body = :body WHERE id = :id');
$database->bind(':title', $title);
$database->bind(':body', $body);
$database->bind(':id', $id);
$database->execute();
header('location:index.php');
}
if(isset($post['delete'])){
$delete_id = $_POST['delete_id'];
$database->query('DELETE FROM posts WHERE id = :id');
$database->bind(':id', $delete_id);
$database->execute();
}
$database->query('SELECT * FROM posts');
$rows = $database->resultset();
?>
<h1>Add Post</h1>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label>Post ID</label><br />
<input type="text" name="id" placeholder="Specify ID" /><br /><br />
<label>Post Title</label><br />
<input type="text" name="title" placeholder="Add a Title..." /><br /><br
/>
<label>Post Body</label><br />
<textarea name="body"></textarea><br /><br />
<input type="submit" name="submit" value="Submit" />
<h1>Posts</h1>
<div>
<?php foreach($rows as $row) : ?>
<div>
<h3><?php echo $row['title']; ?></h3>
<p><?php echo $row['body']; ?></p>
<br />
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="delete_id" value="<?php echo $row['id'];
?>">
<input type="submit" name="delete" value="Delete" />
</form>
</div>
<?php endforeach; ?>
</div>
乍一看,您似乎永远也不会进入UPDATE,因为您的if和elseif具有相同的条件isset($ post ['submit'])。 我不知道您的代码中还有什么,但是您需要使用其他逻辑来确定这是否是编辑。
您应该在插入后使用lastInsertId
值。
例如:
if(isset($post['submit'])){
$title = $post['title'];
$body = $post['body'];
$database->query('INSERT INTO posts (title, body) VALUES(:title, :body)');
$database->bind(':title', $title);
$database->bind(':body', $body);
$database->execute();
$lastId = $database->lastInsertId();
if($lastId){
echo '<p>Post Added!</p>';
}
}
接着:
...
$database->bind(':id', $lastId);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.