2011-10-27 3 views

답변

1

이스케이프 변수의 개념은 이스케이프해야하는 데이터베이스 연결의 컨텍스트에서만 의미가 있기 때문에 연결해야합니다. 서로 다른 문자는 MySQL과 PostgreSQL에 의해 다르게 해석되거나 연결의 문자 집합에 따라 해석 될 수 있습니다. 따라서 진공에서 변수를 벗어나는 것에 대해 이야기하는 것이 타당하지 않은 경우 결과 문자열의 해석 방법에 대한 개념이 필요합니다.

아마도 다른 것을 memcached의 키로 사용할 수 있습니다.

+0

진공 상태에서 도주하는 것에 대해 이야기하는 것이 타당하지 않지만, 단지 인용에 대해 DB에 연결하는 것은 잔인한 것처럼 보입니다. db 매개 변수가 필요하지만 PDO 생성자에있는 것은 이해합니다. postgresql 사용하고 있습니다 ... 연결이 아직 만들어지지 않은 경우 사용자 지정 견적을 사용하는 것 같아요. –

1

PDO는 추상화 계층이므로 각 데이터베이스의 인용 방법이 다릅니다. PDO는 올바른 인용/이스케이프 API 호출을 사용하기 위해 사용할 데이터베이스를 알아야합니다.

0

SQL이 사용될 드라이버를 알고 있다면 자신의 기능을 작성하십시오.

/** 
* @param {string|int|null} $data 
* @return string 
*/ 
function quote ($data) { 
    if (is_float($data) || is_int($data)) { 
     return $data; 
    } else if (is_string($data)) { 
     return '\'' . addslashes($data) . '\''; 
    } else if ($data) { 
     throw new Exception('Invalid data type.'); 
    } else { 
     return 'NULL'; 
    } 
} 

예제 사용 예 : 다른 프로그램에서 나중에 실행될 SQL 코드를 생성하는 데 사용되는 CLI 프로그램이 있습니다. 이 시나리오에서 MySQL 연결을 설정하는 것은 불필요한 작업 일 수 있습니다.

관련 문제