在php中插入mysql查询时出现未知列错误?

在php中插入mysql查询时出现未知列错误?,php,mysql,insert,Php,Mysql,Insert,尽管读了很多帖子,我还是无法解决这个错误- “字段列表”中的未知列“alt.Athesism1111” 字段文件名、类别可能有。在数字或单词的中间, im使用phpmyadmin作为数据库 function insert_rec($cat,$file,$wordid,$synsetid,$seqno) { $cat=mysql_real_escape_string($cat); $file=mysql_real_escape_string($file); $wordid=

尽管读了很多帖子,我还是无法解决这个错误- “字段列表”中的未知列“alt.Athesism1111” 字段文件名、类别可能有。在数字或单词的中间, im使用phpmyadmin作为数据库

function insert_rec($cat,$file,$wordid,$synsetid,$seqno)
{
    $cat=mysql_real_escape_string($cat);
    $file=mysql_real_escape_string($file);
    $wordid=mysql_real_escape_string($wordid);
    $synsetid=mysql_real_escape_string($synsetid);
    $seqno=mysql_real_escape_string($seqno);
    echo $cat."  ". $file ."  ". $wordid."  " . $synsetid."  " . $seqno;
     $sql="INSERT  INTO `wordnet50`.`table`  (`category`,`filename`,`wordid`,`synsetid`,`seqno`) VALUES (`" . $cat . "`,`" . $file. "`,`" . $wordid. " `,`" . $synsetid . "`,`" .$seqno . "`)";
     $result=mysql_query($sql);

    if(!$result)
    {
    die(mysql_error()); 
    }
}

您只需从上述查询的值中删除“`”,并将其替换为“`”(单引号)

对字段名使用反勾号,对值使用单引号

$sql = "INSERT INTO `wordnet50`.`table` (`category`,`filename`,`wordid`,`synsetid`,`seqno`)
        VALUES ('$cat', '$file', '$wordid', '$synsetid', '$seqno')";

它应该用单引号而不是反勾号来包装

$sql = "INSERT  INTO `wordnet50`.`table`  (`category`,`filename`,`wordid`,`synsetid`,`seqno`) VALUES ('" . $cat . "','" . $file. "','" . $wordid. "','" . $synsetid . "','" .$seqno . "')";

BackTick
escape

如果您可以发布您的db模式,那么它将很容易检查,到目前为止,看起来您有一个字段alt.athesism111,它可以作为显示停止符

或者使用以下命令:

 $sql = "INSERT INTO `wordnet50`.`table` (`category`,`filename`,`wordid`,`synsetid`,`seqno`)
    VALUES ('$cat', '$file', '$wordid', '$synsetid', '$seqno')";

请停止使用古老的mysql_*函数编写新代码。它们不再被维护,社区已经开始了弃用过程。相反,你应该学习准备好的语句,并使用PDO或MySQLi。是的,你是对的,我也发现了这一点,尽管这很奇怪,因为我尝试了单引号,但它不起作用。将列名放在`内,将值放在单引号内的组合使它起作用!希望这能帮助其他有类似问题的人
 $sql = "INSERT INTO `wordnet50`.`table` (`category`,`filename`,`wordid`,`synsetid`,`seqno`)
    VALUES ('$cat', '$file', '$wordid', '$synsetid', '$seqno')";