2011-08-27 102 views
0

我創建了一個查詢插入幾個特定的​​值到我的數據庫:爲什麼我的查詢不會插入到我的數據庫中?

function upload_text($text, $categories) { 
$idea = mysql_real_escape_string(htmlentities($text)); 
$categories = mysql_real_escape_string(htmlentities($categories)); 
mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP())"); } 

通過查詢提交的,情報是由用戶輸入的PHP/HTML網站,其中包括下面的代碼聚集​​(縮短):

<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>"> 
<font size='2' face='arial'>Your text: 
<textarea cols="150" rows="5" name="text" maxlenght='500'></textarea> 
<font size='2' face='arial'>Categories: 
<textarea cols="150" rows="1" name="categories" maxlenght='100'></textarea> 
<input type='submit' name='sub' value='Submit'> </form> 

if (isset($_POST['sub'])) { 
$text = $_POST['text']; 
$categories = $_POST['categories']; 
$upload = upload_text($text, $categories); 
     exit(); 

}

當我在本地主機通過測試我的網站,並提交文本,我希望用戶做的,沒有文本實際上是轉移到我的數據庫。它仍然是空的。

有人請幫我理解我的代碼中有什麼錯誤,或者我正在做什麼錯誤,因爲我似乎無法找到它們。

謝謝。

+0

嘗試檢查錯誤日誌(對於Apache,這將是error.log)。 – Amber

+0

我沒有看到一個mysql_connect() –

+0

你試過調試它嗎? upload_text函數是否在提交時執行?文本文件中的列是否不能爲空?什麼是mysql_error說? – Vladimir

回答

0

功能需要被包裹在大括號:

function upload_text($text, $categories) { 
    $idea = mysql_real_escape_string(htmlentities($text)); 
    $categories = mysql_real_escape_string(htmlentities($categories)); 
    $SQL = "INSERT INTO `textfiles` 
      VALUES ('', 
        '".$_SESSION['user_id']."', 
        '$text', 
        '$categories', 
        UNIX_TIMESTAMP() 
        )"; 
    echo $SQL; 
    mysql_query($SQL); 
} 

您還必須已經有一個到數據庫服務器的活動連接才能工作。

這也將是看你的SQL看起來使用什麼我上面的代碼echo運行查詢所以出來之前$SQL之前它被送到mysql_query()像非常有用的。

對於調試很好的第一步,我建議你啓用了錯誤日誌記錄在你的腳本的頂部:

ini_set('display_errors', true); 
ini_set('error_reporting', E_ALL); 
+0

謝謝,但我其實只是錯過了複製這些。他們在那裏。 – NorS

+0

@NorS我已經添加了更多的調試技巧,但是您確實需要編輯您的問題並確保您粘貼的實際代碼已粘貼到那裏,以便我們有機會幫助您。 – Treffynnon

+0

我編輯了缺失的部分。 – NorS

0

請把裏面括號中的函數內容中給出

function upload_text($text, $categories) 
{ 
$idea = mysql_real_escape_string(htmlentities($text)); 
$categories = mysql_real_escape_string(htmlentities($categories)); 
mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP())"); 
} 

還您不關閉支架打開,代碼:

if (isset($_POST['sub'])) { 
0

替換此:

mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP())"); } 

與此:

mysql_query("INSERT INTO `textfiles` VALUES ('', '".$_SESSION['user_id']."', '$text', '$categories', UNIX_TIMESTAMP())") or die(mysql_error()); } 

來檢測錯誤。然後調試..

相關問題