2012-05-15 3 views
3
내가 MySQL을 사용하고

, 난 그의 이름이 "개념 - 관계"있는 테이블을 포함하고 나는 그것을MySQL의 삽입은 자신의 이름이 대시

PHP 코드

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 
      )); 

난에 삽입 할 내가 MySQL의에서 직접 삽입하는 노력이 구문 오류 메시지

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-relation (relationID, firstConceptID, secondConceptID) VALUES (' at line 1' in C:\xampp\htdocs\Mar7ba\models\ontology_model.php:86 Stack trace: #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} thrown in C:\xampp\htdocs\Mar7ba\models\ontology_model.php on line 86 

} 있어 오류를 가지고하면 같은 오류

에게 보인다 테이블의 이름은 TI의 대시를 가지고 있기 때문에 6,
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '&quot;-&quot;.relation (relationID, firstConceptID, secondConceptID) VALU' at line 1 

문제는, MySQL이 쿼리는 개념을 바로 이해

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

을 이해하고 만드는 방법을 찾아 "- 관계를"혼자

어떤 도움을 주시기 바랍니다

하지만 내 테이블의 이름 :

+0

테이블 이름을 변경하지 않는 역 따옴표를 사용하여, 그냥 테이블 이름을 탈출. –

답변

10

묶는 식별자는 예약어/MySQL은 유효한 식별자 문자를합니다.

그래서 당신은

`concept-relation` 

역음 (`)의 키가를 사용해야합니다 왼쪽 상단이 키보드의.

enter image description here

+0

개념 이전에 그 charector를 어떻게 찾을 수 있습니까? whice 키보드 키? –

+0

영어 키보드에 '1'왼쪽에 키를 두십시오. –

+0

예 예 그것을 발견했는데 작동합니다. –

2

변경이 시도

$query2 = "INSERT INTO concept-relation (relationID, firstConceptID, secondConceptID) 
       VALUES (:rID, :sID, :dID)"; 
+0

나는 이미 그것을했는데 작동하지 않았다 –

+0

이 경우 오류가 무엇입니까? –

+0

같은 오류가 여전히 동일합니다. –

2
$query2 = "INSERT INTO `concept-relation` (relationID, firstConceptID, secondConceptID) 
       VALUES (:rID, :sID, :dID)"; 
+0

'concpet-relation'과 같이 'concpet-relation'과 같이 qoma을 의미하면 –

+0

qoma가 아닙니다. 다시 아포스트로피입니다 ('1'앞에 키보드의 숫자 행에 있음). –

+0

네 남자 작품, 고마워요. 6 분 후에 답을 수락 할께요. –

3

시도 : 역 따옴표와

"INSERT INTO `concept-relation` (relationID, firstConceptID, secondConceptID) VALUES (:rID, :sID, :dID)"; 
+0

컨셉 이전에 그 챈 아터는 뭐지? –