2017-12-04 27 views
0

/400의 DB2 테이블에서 작업하고 있습니다. 기본 쿼리를 실행하려고하지만 테이블 이름에 .이 포함되어 있습니다. 예 : my.table은 테이블 이름입니다.테이블 이름에 특수 문자가있는 IBM DB2 테이블에 액세스하는 PDO_ODBC

문제는 PDO가 데이터베이스 이름 my을 테이블 이름 table과 함께 지정한다고 생각합니다. 따라서 준비된 진술은 실패하고 데이터베이스 my에 그러한 테이블이 없다고 말합니다. table. 테이블 이름을 변경하는 것은 옵션이 아닙니다.

테이블 이름에서 마침표를 처리하는 가장 좋은 방법은 무엇입니까? 나는 그 기간을 피하려고했지만 아무런 성공도하지 못했습니다.

$sql= "select * from '[THE.TABLE]'"; 
     try { 
      $statement = $this->db->query($sql); 
      $results = $statement->execute(); 
      foreach ($results as $result) { 
       print_r($result); 
      } 
      exit; 
     } 
     catch (\Exception $e) 
     { 
      //log issue and other stuff 
     } 

응용 프로그램은 젠드 프레임 워크에서 실행되고 내가 그렇군요 2.

+0

테이블 이름 주위에 백틱을 넣어보십시오 :'\'my.table \'' – aynber

+1

[MySQL에서 작은 따옴표, 큰 따옴표 및 백틱을 사용하는 경우] (https://stackoverflow.com/questions/11321491) 가능한 복제본/when-to-use-single-quotes-double-quotes-and-backticks-in-mysql) – aynber

+0

나는 다시 진드기를 시험해 보았다. 그것은 작동하지 않았다. – Knight

답변

0

:

여기 내 문제의 몇 가지 예제 코드입니다. 주석에 언급 된 바와 같이, 해결책은 큰 따옴표를 올바르게 이스케이프 처리하는 것이 었습니다. 대답은 MySQL에 대한 질문에서 찾을 수 있습니다.