2016-08-09 166 views
0

我在這裏有一個「奇怪」的問題。Mysqli查詢不會執行

這是我如何創建一個新的話題。 如果sesson沒有設置返回到index.php,或者如果設置它連接到數據庫,從窗體獲取信息並將它們放入數據庫。然後,如果一切正常瀏覽器回到index.php。這工作正常:

<?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> 

這是我的問題。我已經使用了相同的結構插入後後,我進入到一個話題,但我不知道爲什麼,這並不工作,我想不出有什麼問題:

<?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,並檢查DB是否連接。 –

+0

*「不起作用」* ...如果您提供有關實際不起作用的更多信息或發生了什麼,它會有所幫助。 – BadHorsie

+0

'echo $ query;'你得到了什麼? – user5173426

回答

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

- >在$ id之後缺少一個'?

1

在第一個工作代碼片段中, 包括('../modules/dbconnect.php');包括('modules/dbconnect.php');

和以下您使用的 include('modules/dbconnect.php');

因此,由於文件路徑問題,您有可能沒有連接對象。 請與它 檢查,如果你比後錯誤這裏

+0

是啊,因爲這兩個php文件創建在2個不同的目錄。 – An00bi

+0

如果還沒有完成比簡單設置error_reporting(E_ALL)。 它會幫助你跟蹤確切的錯誤, 是的,而不是$ utext = $ _POST [「myText」]; 寧願使用$ utext = addslashes($ _ POST [「myText」]); –

0

更改此看到任何錯誤:

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

要這樣:

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

而且在檢查的include('modules/dbconnect.php');爲正確的路徑您先使用了兩條不同的路徑include('../modules/dbconnect.php');,然後使用了另一條路徑。

你使用的是InnoDB作爲存儲引擎缺少'('$id,