Php '中的未知列;字段列表';建站
我到处找了,但找不到这个问题的答案。我已经看到了一些帮助人们的解决方案,但当我尝试它时,我发现我做的每件事都是正确的,没有什么需要修复的。我正在制作一个论坛,并试图将这些内容插入mysql表中,但每次尝试时都会显示: “字段列表”中的未知列“6c09e4fe82d47011bf9b25b05946307f” 长代码是其中一个用户的用户id,它应该被插入,但出于某种原因,它会查找具有该名称的列。我只在第一次查询时出错,所以第二部分可能完全没有问题,我不知道Php '中的未知列;字段列表';建站,php,mysql,Php,Mysql,我到处找了,但找不到这个问题的答案。我已经看到了一些帮助人们的解决方案,但当我尝试它时,我发现我做的每件事都是正确的,没有什么需要修复的。我正在制作一个论坛,并试图将这些内容插入mysql表中,但每次尝试时都会显示: “字段列表”中的未知列“6c09e4fe82d47011bf9b25b05946307f” 长代码是其中一个用户的用户id,它应该被插入,但出于某种原因,它会查找具有该名称的列。我只在第一次查询时出错,所以第二部分可能完全没有问题,我不知道 $sql = "INSERT INTO
$sql = "INSERT INTO
topics(topic_subject,
topic_date,
topic_cat,
topic_by)
VALUES('" . mysql_real_escape_string($_POST['topic_subject']) . "',
NOW(),
" . mysql_real_escape_string($_POST['topic_cat']) . ",
". $_SESSION['userid'] ."
)";
$result = mysql_query($sql);
if(!$result)
{
//something went wrong, display the error
echo 'You did everything right, yet there is an error. WEIRD RIGHT???<br /><br />' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
//the first query worked, now start the second, posts query
//retrieve the id of the freshly created topic for usage in the posts query
$topicid = mysql_insert_id();
$sql = "INSERT INTO
posts(post_content,
post_date,
post_topic,
post_by)
VALUES
('" . mysql_real_escape_string($_POST['post_content']) . "',
NOW(),
" . $topicid . ",
". $_SESSION['userid'] ."
)";
$result = mysql_query($sql);
$sql=“插入到
主题(主题),
主题(日期),
主题(猫),
主题(作者)
值(“.mysql\u real\u escape\u string($\u POST['topic\u subject'])。”,
现在(),
“.mysql\u real\u escape\u字符串($\u POST['topic\u cat'])。”,
“$\u会话['userid']”
)";
$result=mysql\u查询($sql);
如果(!$result)
{
//出现问题,请显示错误
echo“你做的每件事都是对的,但是有一个错误。奇怪吧?”
。mysql_error();
$sql=“回滚;”;
$result=mysql\u查询($sql);
}
其他的
{
//第一个查询成功,现在开始第二个查询,发布查询
//检索新创建的主题的id,以便在posts查询中使用
$topicid=mysql\u insert\u id();
$sql=“插入到
帖子(post_内容,
发布日期,
后主题,
邮递员(邮递员)
价值观
(“.mysql\u real\u escape\u字符串($\u POST['POST\u content'])。”,
现在(),
“$topicid。”,
“$\u会话['userid']”
)";
$result=mysql\u查询($sql);
您没有在插入中引用字符串:
". $_SESSION['userid'] ."
应该是:
'". $_SESSION['userid'] ."'
需要用引号括起来
'" . mysql_real_escape_string($_POST['topic_cat']) . ",'
只要echo$sql;
,您就会看到错误
另外,请确保你认真地使用MySQLi…你可能不会有这个问题。你的错误消息是无用的。不要假装你的查询总是正确的。有一个可爱的错误消息,如“你做的一切都对。好了,让妈妈帮你叫坏人”对任何人都没有帮助。如果查询失败,请给出确切的原因,例如
mysql\u query($sql)或die(mysql\u error())
远比假装自己无误有用。即使SQL语法完全正确,也有太多其他失败原因。@LoganMurphy他说“长代码是问题中某个用户的用户id”。@sammith:没关系。OP有值(…,6c09e4fe…)< /代码>没有引用的值。没有引号,它将被视为字段值。引用正在插入的记录中的某个其他字段并没有什么意义,但它仍然是有效的语法。@ McCB不,他没有。>:I
'" . mysql_real_escape_string($_POST['topic_cat']) . ",'