我有一个简单的INSERT语句,看起来像这样......
mysql_query("INSERT INTO comments (`user_id`, `profile_id`, `comment`) VALUES ('{$_SESSION['user_id']}', ('$problemID'), ('$comment'))") or die(mysql_error());
除了$ problemID变量之外,所有内容都被正确插入。在MySql表中,它只返回0.该表设置为接收最多11个字符的整数。
变量本身设置在不同的页面上,但使用此...
进行检索$problemID = intval( $_GET["problem"]);
如果我回复$ problemID,我会得到正确的数字,所以我不确定为什么它不会只是将这个数字插入我的表格中。任何指针都会很棒。
答案 0 :(得分:3)
确保您的评论更清晰;尝试这样的事情:
mysql_query( sprintf(
"INSERT INTO
comments (`user_id`, `profile_id`, `comment`)
VALUES
(%s, %s, '%s')",
intval( $_SESSION['user_id'] ),
intval( $problemID ),
mysql_real_escape_string( $comment )
)) or die( mysql_error() );
为了彻底,请确保您的表格有一个单独的主要索引(也就是条目ID),并加上自动增量。可能是你的MySQL插件工作正常,但是,接收表不知道它应该继续附加条目。
答案 1 :(得分:0)
我的预感是您的INSERT查询引用了评论表中的错误列,因为您有以下内容:
INSERT INTO comments (`user_id`, `profile_id`, `comment`)
但你指的是一个名为$problemID
的变量,所以我猜你的意思是这样的:
INSERT INTO comments (`user_id`, `problem_id`, `comment`)
也许您复制并粘贴了查询代码,但忘记更改投影中的列名?
答案 2 :(得分:0)
删除括号并尝试添加变量,而不是将它们包含在字符串中。
mysql_query("INSERT INTO comments (`user_id`, `profile_id`, `comment`)
VALUES ('".$_SESSION['user_id']."', ".$problemID.", '".mysql_real_escape_string($comment)."')") or die(mysql_error());