2010-12-13 5 views
2

unixODBC를 통해 PHP로 AS400/DB2에 액세스합니다.
그러나 내 AS400의 일부 필드 이름은 "££ .."로 이름이 지정됩니다)
그리고 내 PHP 페이지unixODBC + PHP, 유효하지 않은 문자열 또는 버퍼 길이 오류 메시지

select * from LIBNAME.TABLE where ££FIELD like 'test%' 

에서 SQL 쿼리를 실행하려고 할 때 누군가가 단서가 있다면 난 항상 같은 오류 메시지가

SQL error: [unixODBC][IBM][System i Access ODBC Driver]Invalid string or buffer length., SQL state S1090 in SQLExecDirect

를 얻을.

답변

0

DB2에는 식별자를 포함하는 방법이 있어야합니다. 일부 데이터베이스는 큰 따옴표를 사용합니다.

select * from "tableID" where "fieldID" like 'blah%' 

mySQL은 백틱을 사용합니다. DB2에는 확실하지 않지만 찾아 내고 시도하기가 너무 어렵지 않아야합니다. 그래도 작동하지 않으면 문자열의 16 진수 값으로 문자를 나타내는 방법이 있는지 확인하십시오. 'hello \ x0A \ x0Dthere'와 같이 'hello'와 'there'라는 단어가 줄 바꿈으로 구분됩니다. £ 값을 찾아야 할 수도 있습니다.