Intrepid中的php-sybase凑合能用了

[以前说过](403)Ubuntu升级到hardy之后,php-sybase没了,现在在intrepid里又有了,不过有些变化。

主要的原因好像是支持方式从以前的ctlib变成了dblib,其实是和mssql的支持作在一起了,所以现在没有了sybase_ct.so,并且如果使用了adodb(我新下载的版本是5.07),要修改drivers/adodb-sybase.inc.php的148行,把

return sybase_unbuffered_query($sql,$this->_connectionID);

替换为

return sybase_query($sql,$this->_connectionID);

因为[sybase_unbuffered_query只有在使用CT library时才能用](http://cn.php.net/manual/en/function.sybase-unbuffered-query.php)。

另外一个小变化就是timestamp读出来以后的值变了,由于sybase内置的timestamp其实是varbinary类型,所以原来使用ctlib的时候读出来就是这样的:000007d001917b36,但现在变成了类似中文字符串的形式,所以也需要转换一下:

if (16 != strlen($ts))
    $ts = bin2hex($ts);

Update @ 2009-03-01

还是日期的问题,现在从数据库日期字段里取出来的数据多了个毫秒部分,比如Mar 01 2009 00:24:00:000AM,致命的是这个字符串交给strtotime()函数居然不返回值,把毫秒部分:000去掉就没事了。

Leave a Reply

Your email address will not be published. Required fields are marked *