2016-04-13 15 views
0

entspricht. Während ich diese Formulardateneingabe getestet hatte, hatte ich keine Probleme. Als ich versuchte, komplexeren Text hinzuzufügen, wurde dieser Fehler in dem Textfeld, das von $post_content = $_POST['post_content']; mit numerischen und nicht alphabetischen Zeichen aufgenommen wird, gefunden.QUERY FAILED: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Server-Version für die richtige Syntax in der Nähe von

Frage fehlgeschlagen: Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in der Bedienungsanleitung für die richtige Syntax zu Ihrem MariaDB Server-Version entspricht in der Nähe von

Mein Code zu verwenden, ist wie folgt:

<?php 
    if (isset($_POST['create_post'])){ 

     $post_title = $_POST['title']; 
     $post_author = $_POST['author']; 
     $post_category_id = $_POST['post_category_id']; 
     $post_status = $_POST['post_status']; 
     $post_image = $_FILES['image']['name']; 
     $post_image_temp = $_FILES['image']['tmp_name']; 
     $post_tag = $_POST['post_tag']; 
     $post_content = $_POST['post_content']; 
     $post_date = date('d-m-y'); 
     $post_comment_count = 4; 

     move_uploaded_file($post_image_temp, "../images/$post_image"); 

     $query = "INSERT INTO posts (post_category_id, post_title, post_author, post_date, post_image, post_content, post_tag, post_comment_count, post_status) "; 

     $query .= "VALUES ({$post_category_id},'{$post_title}','{$post_author}',now(),'{$post_image}','{$post_content}','{$post_tag}','{$post_comment_count}','{$post_status}') "; 

     $create_post_query = mysqli_query($connection, $query); 
     checkQuery($create_post_query); 
    } 
?> 
<form action="" method="post" enctype="multipart/form-data"> 
    <div class="form-group"> 
     <label for="post_status">Post Title</label> 
     <input type="text" class="form-control" name="title"> 
    </div> 
    <div class="form-group"> 
     <label for="post_category">Post Category Id</label> 
     <input type="text" class="form-control" name="post_category_id" placeholder="Please enter a number"> 
    </div> 
    <div class="form-group"> 
     <label for="post_author">Post Author</label> 
     <input type="text" class="form-control" name="author"> 
    </div> 
    <div class="form-group"> 
     <label for="post_status">Post Status</label> 
     <input type="text" class="form-control" name="post_status"> 
    </div> 
    <div class="form-group"> 
     <label for="post_image">Post Image</label> 
     <input type="file" name="image"> 
    </div> 
    <div class="form-group"> 
     <label for="post_tag">Post Tags</label> 
     <input type="text" class="form-control" name="post_tag"> 
    </div> 
    <div class="form-group"> 
     <label for="post_tags">Post Content</label> 
     <textarea class="form-control" name="post_content" id="" cols="30" rows="10"></textarea> 
    </div> 
    <div class="form-group"> 
     <input class="btn btn-primary" type="submit" name="create_post" value="Publish Post"> 
    </div> 
</form> 

ich mit meiner $post_content = $_POST['post_content']; mit mysqli_real_escape_string in Kombination versucht und hatte keinen Erfolg, Das führt mich zu der Annahme, dass meine Abfragesyntax deaktiviert ist. Jede Hilfe wird sehr geschätzt.

+2

Sie vorbereitet und gebundene Abfragen verwenden sollten. Es ist viel einfacher, auf einer Abfrage wie diesem erfolgreich zu sein, und Sie müssen sich nicht um die SQL-Injektion kümmern. – Rasclatt

+1

echo Ihre Abfrage und überprüfen Sie, was sie zurückgeben !! – Saty

+1

Sie sind offen für [** SQL injection **] (https://www.owasp.org/index.php/SQL_Injection). Sie stoßen auf Fehler, weil Sie Ihr eigenes Skript brechen. Wie @Rasclatt sagte, sollten Sie vorbereitete Anweisungen verwenden. –

Antwort

-1

Versuch,

diese Abfrage Ihrer Anfrage ist falsch

$query = "INSERT INTO posts (post_category_id, post_title, post_author, post_date, post_image, post_content, post_tag, post_comment_count, post_status) "; 

    $query .= "VALUES ({$post_category_id},'{$post_title}','{$post_author}','".date('Y-m-d')."','{$post_image}','{$post_content}','{$post_tag}','{$post_comment_count}','{$post_status}') ";