2016-08-09 17 views
0

Ich bin hier mit einem "seltsamen" Problem.Mysqli Abfrage führt nicht

So erstelle ich ein neues Thema. Wenn sesson nicht gesetzt ist, gehe zurück zu index.php, oder wenn es gesetzt ist, verbindet es sich mit db, erhalte Informationen aus dem Formular und lege sie in db. Dann wenn alles ok ist gehe zurück zur index.php. Das funktioniert gut:

<?php 
    session_start(); 

    if(!isset($_SESSION['username'])){ 
     header("location: index.php"); 
    } 

    if(isset($_POST["submit"])){ 

     include ('../modules/dbconnect.php'); 

     $uname = $_SESSION['username']; 
     $utitle = $_POST["title"]; 
     $utext = $_POST["myTextArea"]; 

     $query = mysqli_query($conn, "INSERT INTO topic (author, title, text) VALUES ('$uname', '$utitle','$utext')"); 

     if($query){header("Location: ../index.php");} 

     $conn->close(); 
    } 
?> 

<form class="registration_form" action="" method="post"> 
    <label>Titolo</label> 
    <input type="text" name="title" class="input"> 
    <label>Testo</label> 
    <textarea name="myTextArea"></textarea> 
    <input class="button" type="submit" name="submit" value="submit"> 
</form> 

Und das ist mein Problem. Ich habe die gleiche Struktur verwendet Post einzufügen, nachdem ich in ein Thema geben, aber ich weiß nicht, warum dies nicht funktioniert und ich kann nicht herausfinden, was das Problem ist:

<?php 
     if(isset($_POST["submit"])){ 

     include('modules/dbconnect.php'); 

     $id = $_GET['id']; 
     $uname = $_SESSION['username']; 
     $utext = $_POST["myText"]; 

     $query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id, '$uname', '$utext')"); 

     if($query){header("Location: ../index.php");} 

     $conn->close(); 
    } 
?> 

<form class="reply_form" action="" method="post"> 
    <label>Testo</label> 
    <textarea name="myText"></textarea> 
    <input class="button" type="submit" name="submit" value="submit"> 
</form> 
+0

print $ conn, und überprüfen Sie, ob die DB verbunden ist oder nicht. –

+0

* "funktioniert nicht" * ... es hilft, wenn Sie mehr Informationen darüber geben, was eigentlich nicht funktioniert oder was passiert. – BadHorsie

+0

'echo $ query;' und was bekommst du? – user5173426

Antwort

1
VALUES ('$id, '$uname', '$utext') 

-> Ein 'after $ id ???

1

Im ersten funktionsfähigen Code-Snippet, include ('../modules/dbconnect.php');

und darunter verwendet include ('modules/dbconnect.php');

so kann es Chancen sein, dass Sie kein Verbindungsobjekt aufgrund Dateipfadproblem haben. überprüfen Sie bitte mit ihm und wenn irgendein Fehler, den Sie senden Fehler gesehen als hier

+0

Yeah, weil diese zwei php-Dateien in 2 verschiedenen Verzeichnissen erstellt werden. – An00bi

+0

Wenn noch nicht getan, einfach set error_reporting (E_ALL). wäre es hilfreich, Sie verfolgen genauer Fehler und ja, statt $ utext = $ _POST ["myText"]; bevorzugen Sie $ utext = addslashes ($ _ POST ["myText"]); –

0

diese Änderung:

$query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id, '$uname', '$utext')"); 

Um dies:

$query = mysqli_query($conn, "INSERT INTO post (id, author, text) VALUES ('$id', '$uname', '$utext')"); 

Auch die Prüfung auf den richtigen Pfad von include('modules/dbconnect.php'); als Sie haben zuerst zwei verschiedene Wege benutzt: include('../modules/dbconnect.php'); und den nächsten.

Fehlende ' bei ('$id,

0

Sind Sie InnoDB als Speicher-Engine? Wenn ja, haben Sie vielleicht vergessen, entweder mysqli_autocommit auf true zu setzen oder nach Ihrer Anfrage mysqli_commit aufzurufen.

Verwandte Themen