/** * creates this view * * @throws Doctrine_View_Exception * @return void */ public function create() { $sql = sprintf(self::CREATE, $this->_name, $this->_query->getSqlQuery()); try { $this->_conn->execute($sql, $this->_query->getFlattenedParams()); } catch (Doctrine_Exception $e) { throw new Doctrine_View_Exception($e->__toString()); } }
public function testTicket() { Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, true); $q = new Doctrine_Query(); $q->select('s.*')->from('Ticket_1116_User s')->where('s.username = ?', array('test')); // to see the error switch dbh to a real db, the next line will trigger the error $test = $q->fetchOne(); //will only fail with "real" mysql $this->assertFalse($test); $sql = $q->getSqlQuery(); // just getSql()?!?! and it works ? the params are ok after this call $params = $q->getFlattenedParams(); $this->assertEqual(count($params), 1); // now we have array('test',null) very strange ..... $this->assertEqual($sql, "SELECT u.id AS u__id, u.username AS u__username, u.deleted_at AS u__deleted_at FROM user u WHERE (u.username = ? AND (u.deleted_at IS NULL))"); $this->assertEqual($params, array('test')); //now also this works! (always works witch mock only fails with mysql) $test = $q->fetchOne(); $this->assertFalse($test); Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, false); }