2016-08-30 29 views
-1

對不起,但我在測試服務器(我不擁有),我試圖發展我的網站。這一點的代碼應該採取$ _POST信息,並將其插入到MySQL數據庫。 (我知道它不安全,我只是爲了測試目的而嘗試這個)。如何跟蹤爲什麼PHP腳本無法寫入數據庫?

當我嘗試顯示一個錯誤時,它顯得很模糊,並且說第一行中的引號出現了問題,第一行中甚至沒有引號。

<?php 

include "includes/connect.php"; 

session_start(); 

if($_SESSION['username'] != null) { 
    if($_POST['title'] != null){ 

     $query = mysqli_query($conn, "INSERT INTO posts (id, title, date,  body, author) VALUE (null, '" . $_POST['title'] . "', now(), '" . $_POST['body']  . "', '" . $_POST['author'] . "'"); 



    }else{ 
     echo "Unauthorized"; 
    } 
}else { 

    echo "Unauthorized"; 
} 

?> 
+0

檢查'包括/ connect.php'文件中輸入的所有信息是否正確 –

+0

代碼你分享的是完整的部分代碼?因爲代碼中缺少PHP開始標記。 – mi6crazyheart

+0

是的,我仔細檢查。如果連接文件失敗,甚至會有錯誤輸出...我100%確定它不在那裏。我有其他文件使用連接,他們沒有錯誤。謝謝 –

回答

2

看起來你寫VALUE,而不是VALUES

此外,你應該打破你的代碼,並使用一個位調試:

extract($_POST); // Doing this will break up your array keys into variables. 

$sql = "INSERT INTO posts (id, title, date,body, author) VALUES (null, '". $title ."', NOW(), '".$body. "', '". $author."')"; 

$query = mysqli_query($conn, $sql) or die(mysqli_error()); 
+0

我想到了這一點,並嘗試了VALUES。它不會改變錯誤: –

0

Change of the syntax of Include shall make a trick for you.

更換

include "includes/connect.php"; 

隨着

include ("includes/connect.php"); 
+0

或者你把'error_reporting(E_ALL)'放在文件的頂部,並檢查你的錯誤代碼 –

+0

我做到了,並且沒有顯示錯誤 –

+0

你是否改變了包含文件因爲我如何建議 –

0

試着修改您的查詢,而不是VALUE,它應該是VALUES。 看看這個link

0

只需更換你的代碼與這一個:

<?php 
include "includes/connect.php"; 

session_start(); 

if(isset($_SESSION['username']) and ($_SESSION['username'] != null)) { 
    if(isset($_POST['title']) and ($_POST['title'] != null)) { 

     $query = mysqli_query($conn, "INSERT INTO posts (`id`, `title`, `date`, `body`, `author`) VALUES (Null, '".$_POST['title']."', now(), '".$_POST['body']."', '".$_POST['author']."'") or die(mysqli_error($conn)); 



    }else{ 
     echo "Unauthorized"; 
    } 
}else { 

    echo "Unauthorized"; 
} 

?> 
+0

我做了,它輸出這個錯誤: 你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本的手冊,在第1行 –

+0

附近使用正確的語法,然後檢查它是否與數據庫連接,檢查你的mysqli_connect查詢 –

0

這將正常工作 -

<?php 
session_start(); 
include "includes/connect.php"; 

if(isset($_SESSION['username']) && !empty($_SESSION['username'])) { 

    if(isset($_POST['title']) && !empty($_POST['title'])) { 

     $query = mysqli_query($conn, "INSERT INTO posts (`id`, `title`, `date`, `body`, `author`) VALUES (Null, '".$_POST['title']."', now(), '".$_POST['body']."', '".$_POST['author']."'") or die(mysqli_error($conn)); 

     $result = mysqli_query($conn, $query); 

    }else{ 
     echo "Unauthorized"; 
    } 
}else { 

    echo "Unauthorized"; 
} 
?>