【发布时间】:2012-05-15 18:54:18
【问题描述】:
我有一个名为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 )
它只是理解概念并单独制造“-关系”,
感谢您的帮助,但不要更改我的表格名称:)
【问题讨论】:
-
使用反引号不会改变你的表名,它只是转义表名。
标签: php mysql pdo mysql-error-1064