Zend framework 停止Zend_Db引用Sybase位数据类型字段值

Zend framework 停止Zend_Db引用Sybase位数据类型字段值,zend-framework,pdo,zend-db,freetds,sap-ase,Zend Framework,Pdo,Zend Db,Freetds,Sap Ase,我正在对Sybase数据库使用Pdo_Mssql适配器,并解决遇到的问题。剩下的一个麻烦问题是Zend_Db引用位字段值的实例。为插入运行以下操作时: $row=$this->createRow(); ... $row->MyBitField=$data['MyBitField']; ... $row->save() FreeTDS日志输出显示: dbutil.c:87:msgno 257:“不允许从数据类型'VARCHAR'隐式转换为'BIT'。请使用CONVERT函数运行此查询 我曾尝试将值

我正在对Sybase数据库使用Pdo_Mssql适配器,并解决遇到的问题。剩下的一个麻烦问题是Zend_Db引用位字段值的实例。为插入运行以下操作时:

$row=$this->createRow(); ... $row->MyBitField=$data['MyBitField']; ... $row->save()

FreeTDS日志输出显示:

dbutil.c:87:msgno 257:“不允许从数据类型'VARCHAR'隐式转换为'BIT'。请使用CONVERT函数运行此查询

我曾尝试将值强制转换为int和bool,但这似乎是一个表元数据问题,而不是输入的数据类型问题

幸运的是,Zend_Db_Expr工作得很好

$row->MyBitField=new Zend_Db_Expr(“转换(位,{$data['MyBitField']})”

我已经验证了describeTable()正在为字段返回位。关于如何让ZF停止引用MS SQL/Sybase位字段,有什么想法吗?

您只需尝试一下(适用于mysql位类型):


Pdo_Mssql似乎引用了所有数字数据类型:(
$row->MyBitField = new Zend_Db_Expr($data['MyBitField']);