public function assertSqlStrings(ToSqlInterface $query, array $defines) { foreach ($defines as $define) { list($driver, $expectedSQL) = $define; $args = new ArgumentArray(); $sql = $query->toSql($driver, $args); $this->assertEquals($expectedSQL, $sql); } }
public function assertDriverQuery(BaseDriver $driver, ToSqlInterface $query) { $args = new ArgumentArray(); $sql = $query->toSql($driver, $args); if ($driver instanceof MySQLDriver) { $conn = $this->createConnection('mysql'); } elseif ($driver instanceof PgSQLDriver) { $conn = $this->createConnection('pgsql'); } elseif ($driver instanceof SQLiteDriver) { $conn = $this->createConnection('sqlite'); } $stm = $conn->prepare($sql); $err = $conn->errorInfo(); $this->assertEquals('00000', $err[0], var_export($err, true) . ' SQL: ' . $sql); $stm->execute($args->toArray()); $err = $conn->errorInfo(); $this->assertEquals('00000', $err[0], var_export($err, true) . ' SQL: ' . $sql); return $args; }
public function executeQuery(ToSqlInterface $query) { $sql = $query->toSql($this->driver, new ArgumentArray()); $this->showSql($sql); $this->query($sql); }
protected function appendQueryStatement(ClassMethod $method, BaseDriver $driver, ToSqlInterface $query, ArgumentArray $args) { // build query $sql = $query->toSql($driver, $args); $call = new MethodCallExpr('$this', 'query', [$sql]); $method->getBlock()->appendLine(new Statement($call)); }