/** * Is used for quick selecting of big number of records from database without creating ORM objects * @param \Illuminate\Database\Query\Builder $query - Query Builder object * @return array $results - results of query */ private static function getArrayFromQuery($query) { $sql = $query->toSql(); foreach ($query->getBindings() as $binding) { $value = is_numeric($binding) ? $binding : "'" . $binding . "'"; $sql = preg_replace('/\\?/', $value, $sql, 1); } $results = \DB::select($sql); return $results; }
/** * Render query SQL string. * * @author Morten Rugaard <*****@*****.**> * * @param \Illuminate\Database\Query\Builder $query * @return string */ function render_sql(\Illuminate\Database\Query\Builder $query) { return vsprintf($query->toSql(), $query->getBindings()); }
private function selectWhereIn($keys, Builder $query) { $results = []; foreach (array_chunk($keys, 500) as $chunk) { $results = array_merge($results, $this->connection->table($this->connection->raw("({$query->toSql()}) as query"))->whereIn("__key", $chunk)->get()); } return collect($results)->keyBy("__key")->toArray(); }
/** * Evaluate query as string. * * @return string */ public function getValue() { $sql = '(' . $this->query->toSql() . ')'; if ($this->alias) { $alias = $this->query->getGrammar()->wrapTable($this->alias); $sql .= ' as ' . $alias; } return $sql; }
public static function toSql(Builder $query) { $sql = $query->toSql(); $connection = $query->getConnection(); $pdo = $connection->getPdo(); $bindings = $query->getBindings(); $bindings = $connection->prepareBindings($bindings); if (!empty($bindings)) { foreach ($bindings as $binding) { $sql = preg_replace('/\\?/', $pdo->quote($binding), $sql, 1); } } return $sql; }
/** * Get the SQL representation of the query. * * @return string * @static */ public static function toSql() { return \Illuminate\Database\Query\Builder::toSql(); }
/** * Add a sub query count clause to the query. * * @param \Illuminate\Database\Query\Builder $query * @param string $operator * @param int $count * @param string $boolean * @return $this */ protected function whereCountQuery(QueryBuilder $query, $operator = '>=', $count = 1, $boolean = 'and') { if (is_numeric($count)) { $count = new Expression($count); } $this->query->addBinding($query->getBindings(), 'where'); return $this->where(new Expression('(' . $query->toSql() . ')'), $operator, $count, $boolean); }
protected function getQueryKey(Builder $builder, $other = null) { $name = $builder->getConnection()->getName(); return md5($name . $builder->toSql() . serialize($builder->getBindings()) . $other); }
/** * Extracts a raw WHERE clause string from a QueryBuilder instance. * Note that this is practically identical to the original Listify. * * @param QueryBuilder $query A Query Builder instance * @return string */ protected function getConditionStringFromQueryBuilder(QueryBuilder $query) { $initialQueryChunks = explode('where ', $query->toSql()); if (count($initialQueryChunks) == 1) { throw new InvalidArgumentException('The query builder instance must have a where clause to build a condition string from'); } $queryChunks = explode('?', $initialQueryChunks[1]); $chunkCount = count($queryChunks); $bindings = $query->getBindings(); $whereString = ''; for ($i = 0; $i < $chunkCount; $i++) { $whereString .= $queryChunks[$i]; if (isset($bindings[$i])) { if (gettype($bindings[$i]) === 'string') { $whereString .= '"' . $bindings[$i] . '"'; } } } return $whereString; }
/** * Return sql statement * * @param Builder $queryBuilder * @return string */ public static function toSql(Builder $queryBuilder) { $params = $queryBuilder->getBindings(); $pdoStatement = $queryBuilder->toSql(); foreach ($params as $param) { $param = is_int($param) ? $param : "'{$param}'"; $pdoStatement = str_replace_first('?', $param, $pdoStatement); } return str_replace('`', '', $pdoStatement); }
/** * Get the SQL representation of the query. * * @return string */ public function toSql() { return $this->query->toSql(); }
/** * @param Builder $qb * @param array $attributes */ private function generateQueryHashFromQueryBuilder(Builder $qb, array $attributes) { $this->actualQueryHash = sha1(implode('_', [$this->cacheHashKeyPrefix, $qb->toSql(), serialize($qb->getBindings()), serialize($attributes)])); }