在 PHP 中插入 MySQL 查询时出现未知列错误


unknown column error in insert mysql query in php?

尽管阅读了很多帖子,但我无法解决此错误-"字段列表"中的未知列"alt.atheism1111"字段文件名,类别可能有 .在数字或单词的中间,IM 使用 phpmyadmin for database

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')";

它应该用单引号而不是反引号括起来。

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

BackTick转义 MYSQL 保留字。

如果您可以发布数据库模式,那么检查起来就很容易了,到目前为止,看起来您有一个字段为 alt.atheism1111,它可以成为显示的障碍者

或使用此:

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