QUERY FAILED。您的SQL语法有错误;检查对应的手册

时间:2017-06-16 07:27:47

标签: php mysql

编辑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>

1 个答案:

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