0

非常に多くの投稿を読んだにもかかわらず、このエラーを解決できません-「フィールドリスト」の不明な列「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

4 に答える 4

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

上記のクエリから値のみで「`」を削除し、「'」(一重引用符)に置き換える必要があります。

于 2012-05-30T11:54:48.410 に答える
1

フィールド名にはバッククォートを使用し、値には一重引用符を使用します。

$sql = "INSERT INTO `wordnet50`.`table` (`category`,`filename`,`wordid`,`synsetid`,`seqno`)
        VALUES ('$cat', '$file', '$wordid', '$synsetid', '$seqno')";
于 2012-05-30T11:55:37.680 に答える
0

バックティックではなく、一重引用符で囲む必要があります。

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

BackTickMYSQL 予約語をエスケープします。

于 2012-05-30T11:57:01.623 に答える
-2

ur dbスキーマを投稿できれば、チェックが簡単になります。今のところ、ショーストッパーになる可能性のあるalt.atheism1111としてフィールドがあるようです

またはこれを使用します:

 $sql = "INSERT INTO `wordnet50`.`table` (`category`,`filename`,`wordid`,`synsetid`,`seqno`)
    VALUES ('$cat', '$file', '$wordid', '$synsetid', '$seqno')";
于 2012-05-30T12:01:26.347 に答える