我通过unixODBC使用PHP访问AS400 / DB2
但我的AS400的一些字段名称以“£..”命名(不能更改)
当我尝试从我的PHP页面启动SQL查询时
select * from LIBNAME.TABLE where ££FIELD like 'test%'
我总是收到相同的错误消息
SQL错误:[unixODBC] [IBM] [System i Access ODBC Driver]无效的字符串或缓冲区长度。,SQLExecDirect中的SQL状态S1090
如果有人有线索。
答案 0 :(得分:0)
DB2应该有一些方法来封装标识符。有些数据库使用双引号
select * from "tableID" where "fieldID" like 'blah%'
mySQL使用反引号。不确定DB2,但不应该太难找到并尝试。如果这不起作用,请查看是否有一种方法可以通过字符串中的十六进制值表示字符。就像'hello \ x0A \ x0Dthere'一样,将'hello'和'there'分隔为换行符。您可能只需要找到£的值。
答案 1 :(得分:0)