为什么我的查询不会插入我的数据库?

时间:2011-08-27 13:19:19

标签: php mysql html database

我已经创建了一个查询,可以在我的数据库中插入一些特定值:

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();

}

当我通过localhost测试我的网站并提交文本时,正如我希望用户所做的那样,实际上没有文本传输到我的数据库。它仍然是空的。

有人请帮助我了解我的代码中出现的错误,或者我正在做的错误,因为我似乎无法找到它们。

谢谢。

3 个答案:

答案 0 :(得分: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'])) {

答案 1 :(得分: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);

作为调试的第一步,我建议您在脚本顶部启用错误记录:

{{1}}

答案 2 :(得分: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()); }

检测错误。然后调试..