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]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 C:\xampp\htdocs\Mar7ba\models\ontology_model.php 中的 '-relation (relationID, firstConceptID, secondConceptID) VALUES (' at line 1' 附近使用: 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->relationAdd() #3 C:\xampp\htdocs\Mar7ba \index.php(13): Bootstrap->__construct() #4 {main} 在第 86 行的 C:\xampp\htdocs\Mar7ba\models\ontology_model.php 中抛出

我试图直接从 MySQL 插入并得到错误似乎是同样的错误

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '"-".relation (relationID, firstConceptID, secondConceptID) VALU' 附近使用正确的语法

问题是因为表名有破折号,看看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 回答