为什么我的MySQL数据库插入不起作用?

时间:2009-03-22 01:43:58

标签: php mysql

$author = $_SESSION['username'];
$subject = $_POST['subject'];
$body = $_POST['body'];
$branched = $_POST['branched'];
$time = time();
$branchedFrom = $_POST['parent'];
$id = $_POST['parent'];
$next = 0;
$previous = 0;
$branchedTo = 0;
mysql_query(
    "INSERT INTO offtopic
    VALUES(
        '',
        '$author',
        '$subject',
        '$body',
        '$time',
        '$next',
        '$previous',
        '$branchedFrom',
        '$branchedTo'
");

我已经尝试了很多次,甚至尝试更改一些东西,但它没有将信息保存到数据库中。 开头的空白区域是索引在数据库中的位置。 SESSION和POST的东西我很确定能够正常通过。

2 个答案:

答案 0 :(得分:4)

"INSERT INTO offtopic VALUES('', '$author', '$subject', '$body', '$time',    '$next', '$previous', '$branchedFrom', '$branchedTo'"

在字符串中缺少关闭')'。使用mysql_error()选择错误消息,这样的简单语法错误应该是显而易见的。

你也有SQL injection个安全漏洞可以开车穿过。您需要在连接到字符串的每个字符串值上调用mysql_real_escape_string(),或者使用mysqli parameterised queries

答案 1 :(得分:1)

也许是因为您的查询缺少要插入的字段

"INSERT INTO offtopic(field1, field2, etc....) VALUES('', '$author', '$subject', '$body', '$time', '$next', '$previous', '$branchedFrom', '$branchedTo'");