/** * @covers SphinxSearch\Db\Sql\Replace::getSqlString */ public function testGetSqlString() { $this->replace->into('foo')->values(array('bar' => 'baz', 'boo' => new Expression('NOW()'), 'bam' => null)); $this->assertEquals('REPLACE INTO `foo` (`bar`, `boo`, `bam`) VALUES (\'baz\', NOW(), NULL)', $this->replace->getSqlString(new TrustedSphinxQL())); // with TableIdentifier $this->replace = new Replace(); $this->replace->into(new TableIdentifier('foo'))->values(array('bar' => 'baz', 'boo' => new Expression('NOW()'), 'bam' => null)); $this->assertEquals('REPLACE INTO `foo` (`bar`, `boo`, `bam`) VALUES (\'baz\', NOW(), NULL)', $this->replace->getSqlString(new TrustedSphinxQL())); }
/** * @depends testConnection */ public function testTypeWithSql() { $this->adapter->query('DELETE FROM foo WHERE id = 1', Adapter::QUERY_MODE_EXECUTE); $search = new Search($this->adapter); $search->setQueryMode($search::QUERY_MODE_EXECUTE); $indexer = new Indexer($this->adapter); $indexer->setQueryMode($indexer::QUERY_MODE_EXECUTE); $sql = new Sql($this->adapter); //test Replace with sql query $insert = new Replace('foo'); $insert->values(['id' => 1, 'c1' => 10, 'c2' => true, 'c3' => '5', 'f1' => 3.333]); $affectedRow = $indexer->insertWith($insert); $this->assertEquals(1, $affectedRow); $select = new Select('foo'); $select->where(['id' => 1]); //test select sql $results = $search->searchWith($select); foreach ($results as $result) { $this->assertEquals(1, $result['id']); $this->assertEquals(10, $result['c1']); $this->assertEquals(1, $result['c2']); $this->assertEquals(5, $result['c3']); $this->assertEquals(3.333, $result['f1']); break; } $select = new Select('foo'); $select->where(['f1' => 3.333]); //test select sql with float in where and direct adapter execution $results = $this->adapter->query($sql->getSqlStringForSqlObject($select), Adapter::QUERY_MODE_EXECUTE); foreach ($results as $result) { $this->assertEquals(1, $result['id']); $this->assertEquals(10, $result['c1']); $this->assertEquals(1, $result['c2']); $this->assertEquals(5, $result['c3']); $this->assertEquals(3.333, $result['f1']); break; } }