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

时间:2012-05-30 11:50:55

标签: php mysql insert

尽管阅读了很多帖子但我无法解决这个错误 - '字段列表'中的未知列'alt.atheism1111' 字段文件名,类别可能有。在数字或单词的中间, 即时通讯使用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()); 
    }
}

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

对字段名称和单引号使用反引号。

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

答案 2 :(得分:0)

它应该用单引号包裹,而不是后退。

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

BackTick转义 MYSQL Reserved WORDS

答案 3 :(得分:-2)

如果你可以发布你的db模式而不是很容易检查,那么现在它看起来像你有一个字段alt.atheism1111可以是显示阻止

或使用此:

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