编辑CMS中的帖子。 我收到了错误。
(QUERY FAILED。您的SQL语法有错误;请查看手册 对应于您的MariaDB服务器版本以获得正确的语法 使用'post_tags ='附近的东西,关于,学习',post_content =' 第1行的美好事物
<?php
if (isset($_GET['p_id'])) {
$the_post_id = $_GET['p_id'];
}
$query = "SELECT * FROM posts WHERE post_id = $the_post_id ";
$select_posts_by_id = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($select_posts_by_id)) {
$post_id = $row['post_id'];
$post_title = $row['post_title'];
$post_category_id = $row['post_category_id'];
$post_image = $row['post_image'];
$post_content = $row['post_content'];
$post_date = $row['post_date'];
$post_tags = $row['post_tags'];
$post_comment_count = $row['post_comment_count'];
$post_status = $row['post_status'];
}
if(isset($_POST['update_post'])) {
$post_title = $_POST['post_title'];
$post_category_id = $_POST['post_category'];
$post_tags = $_POST['post_tags'];
$post_status = $_POST['post_status'];
$post_image = $_FILES['image']['name'];
$post_image_temp = $_FILES['image']['tmp_name'];
$post_content = $_POST['post_content'];
move_uploaded_file($post_image_temp, "../images/$post_image");
$query = "UPDATE posts SET ";
$query .="post_title = '{$post_title}', ";
$query .="post_category_id = '{$post_category_id}', ";
$query .="post_tags = '{$post_tags }', ";
$query .="post_status = '{$post_status }', ";
$query .="post_image = '{$post_image}' ";
$query .="post_tags = '{$post_tags }', ";
$query .="post_content = '{$post_content }', ";
$query .="post_comment_count = '{$post_comment_count }', ";
$query .="WHERE post_id = {$the_post_id} ";
$update_post = mysqli_query($connection,$query);
confirmQuery($update_post);
}
?>
<form action="" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="title">Post Title</label>
<input value="<?php echo $post_title; ?>" type="text" class="form-control" name="post_title">
</div>
<div class="form-group">
<select name="post_category" id="">
<?php
$query = "SELECT * FROM categories";
$select_categories = mysqli_query($connection,$query);
confirmQuery($select_categories);
while($row = mysqli_fetch_assoc($select_categories )) {
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
echo "<option value='$cat_id'>{$cat_title}</option>";
}
?>
</select>
</div>
<div class="form-group">
<label for="post_tags">Post tags </label>
<input value="<?php echo $post_tags; ?>" type="text" class="form-control" name="post_tags">
</div>
<div class="form-group">
<label for="post_status">Post status</label>
<input value="<?php echo $post_status; ?>" type="text" class="form-control" name="post_status">
</div>
<div class="form-group">
<img width="100" src="../images/<?php echo $post_image; ?>" alt="">
<input type="file" name="image">
</div>
<div class="form-group">
<label for="post_content">Post Content</label>
<textarea class="form-control "name="post_content" id"" cols="30" rows="10"><?php echo $post_content; ?></textarea>
</div>
<div class="form-group">
<input class="btn btn-primary" type="submit" name="update_post" value="Update Post">
</div>
</form>
答案 0 :(得分:1)
更新语句缺少逗号
$query = "UPDATE posts SET ";
$query .="post_title = '{$post_title}', ";
$query .="post_category_id = '{$post_category_id}', ";
$query .="post_tags = '{$post_tags}', ";
$query .="post_status = '{$post_status}', ";
$query .="post_image = '{$post_image}', "; /* MISSING COMMA */
$query .="post_tags = '{$post_tags}', ";
$query .="post_content = '{$post_content}', ";
$query .="post_comment_count = '{$post_comment_count}' "; /* EXTRA, uneeded comma */
$query .="WHERE post_id = {$the_post_id}";
和where子句之前不需要的额外逗号。在关闭花括号之前额外的空格可能会导致问题。如果你像这样编写sql,你可以更容易地发现问题。
$query = "UPDATE posts SET
post_title = '{$post_title}',
post_tags = '{$post_tags }',
post_status = '{$post_status}',
post_image = '{$post_image}',
post_tags = '{$post_tags}',
post_content = '{$post_content}',
post_comment_count = '{$post_comment_count}'
WHERE post_id = {$the_post_id}";