7

というテーブルがconcept-relationあり、そこに挿入したいと思います。

for ($i = 0; $i < count($sources); $i++) {
    $sourceID = $this->getConcpeptID($sources[$i]);
    $desID = $this->getConcpeptID($distinations[$i]);
    $query2 = "INSERT INTO concept-relation (relationID, firstConceptID, secondConceptID) VALUES (:rID, :sID, :dID)";
    $sth = $this->db->prepare($query2);
    $sth->execute(array(
        ':rID' => $relationID,
        ':sID' => $sourceID,
        'dID' => $desID
    ));
}

この構文エラーメッセージが表示されました

致命的なエラー:キャッチされない例外'PDOException'とメッセージ'SQLSTATE [42000]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください'-relation(relationID、firstConceptID、secondConceptID)VALUES(' at line 1'in C:\ xampp \ htdocs \ Mar7ba \ models \ ontology_model.php: 86スタックトレース:#0 C:\ xampp \ htdocs \ Mar7ba \ models \ ontology_model.php(86):PDOStatement-> execute(Array)#1 C:\ xampp \ htdocs \ Mar7ba \ controlers \ Ontology.php(69) :Ontology_Model-> addRelation('jklljkljk'、Array、Array)#2 C:\ xampp \ htdocs \ Mar7ba \ libs \ Bookstrap.php(42):Ontology-> ratioAdd()#3 C:\ xampp \ htdocs \ Mar7ba \ index.php(13):Bootstrap-> __construct()#4 {main}が86行目のC:\ xampp \ htdocs \ Mar7ba \ models\ontology_model.phpにスローされました

MySQLから直接挿入しようとしましたが、エラーが発生したのは同じエラーのようです

#1064-SQL構文にエラーがあります。1行目の'"-"。relation(relationID、firstConceptID、secondConceptID)VALU'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

問題は、テーブルの名前にダッシュが含まれているためです。MySQLがクエリをどのように理解しているかを確認してください

INSERT INTO concept - relation(
    relationID,
    firstConceptID,
    secondConceptID
)
VALUES ( 3, 3, 3 )

コンセプトを正しく理解し、「-関係」だけを作ります。

助けていただければ幸いですが、テーブルの名前は変更しません:)

4

4 に答える 4

15

識別子をバックティックで囲むと、予約語/文字がmysqlで有効な識別子になります。

だからあなたは使うべきです

 `concept-relation`

バッククォート(`)は、このキーボードの左上にあるキーです。

ここに画像の説明を入力してください

于 2012-05-15T18:59:51.530 に答える
4
$query2 = "INSERT INTO `concept-relation` (relationID, firstConceptID, secondConceptID)
                VALUES (:rID, :sID, :dID)";
于 2012-05-15T18:56:16.960 に答える
3

試す:

"INSERT INTO `concept-relation` (relationID, firstConceptID, secondConceptID) VALUES (:rID, :sID, :dID)";
于 2012-05-15T18:56:38.177 に答える
1

これを試して

$query2 = "INSERT INTO concept-relation (relationID, firstConceptID, secondConceptID)
                VALUES (:rID, :sID, :dID)";
于 2012-05-15T18:55:39.057 に答える