Странности PHP

в разделе Программирование | Метки: PHP

Предистория:
пишу один сайтег, тестирую на локальной машине Ubuntu Linux
PHP 5.2.6-2ubuntu4 with Suhosin-Patch 0.9.6.2 (cli) (built: Oct 14 2008 20:06:32

все работает как надо, комитю в svn, на сервере Debian Linux
PHP 5.2.6-0.1+b1 with Suhosin-Patch 0.9.6.2 (cli) (built: Dec 3 2008 22:24:05)
делаю svn up

появляется такая ошибка

Zend_Db_Statement_Exception: SQLSTATE[42804]: Datatype mismatch: 7 ERROR: argument of AND must be type boolean, not type record in /var/www/Zend/library/Zend/Db/Statement/Pdo.php on line 238

База используется одна и таже, на одном и том же сервере, ZendFramework используется последня версия из svn (svn up и там и там был сделан после того как появилась эта ошибка).
Код вообще простейший:


<?php
/**
 * Description of OrganizationsTable
 *
 * @author boris
 */
class OrganizationsTable extends Zend_Db_Table
{
    protected 
$_name 'organizations';

    public function 
locationsNear($data$page 0)
    {
        
$longitude $data['longitude'];
        
$latitude $data['latitude'];
        
$factor 0.02;

        
$select $this->getAdapter()->select()
                                     ->
from($this->_name)
                                     ->
where('longitude < ?'$longitude $factor)
                                     ->
where('longitude > ?'$longitude $factor)
                                     ->
where('latitude < ?'$latitude $factor)
                                     ->
where('latitude > ?'$latitude $factor);
    
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
    
$paginator->setCurrentPageNumber($page);
    
var_dump($paginator);
    
var_dump($paginator->count());
    die;
    return 
$paginator;
    }
}
?>

var_dump и die в коде стоит уже специально чтобы проверить почему такая хрень. В общем единственное более менее адекватное объяснение которое этому нашлось это то что Postgres нужно подсовывать boolean в определенном формате, вот тут люди извращались немного http://trac.phpdoctrine.org/changeset/1260 еще в cakephp тоже подобное находил https://trac.cakephp.org/ticket/1285

DboPostgres::value() fails to properly return a quoted representation of booleans. This makes it impossible to store boolean values in PostgreSQL. (critical bug)

Каким боком ко мне это относится я не очень понял, т.к. в таблице не было ни одного boolean поля не было :(
Переносить базу на MySQL не хотелось, я изначально начал этот делать сайт на посгрисе чтобы получше его изучить, и отступать из за одной ошибки не собирался.

Пока сайт только в стадии тестирования решил не заморачиваться сборкой нового php из исходников, но вообще странная ситуация, версии почти не отличаются, а баг таки в одной есть, а в другой нет.