yiisoft/yii2 · error · yii\base\InvalidArgumentException
Expected select query object with enumerated (named) paramet
Error message
Expected select query object with enumerated (named) parameters
What it means
Error "Expected select query object with enumerated (named) parameters" thrown in yiisoft/yii2.
Source
Thrown at framework/db/QueryBuilder.php:413
}
return [$names, $placeholders, $values, $params];
}
/**
* Prepare select-subquery and field names for INSERT INTO ... SELECT SQL statement.
*
* @param Query $columns Object, which represents select query.
* @param Schema $schema Schema object to quote column name.
* @param array $params the parameters to be bound to the generated SQL statement. These parameters will
* be included in the result with the additional parameters generated during the query building process.
* @return array array of column names, values and params.
* @throws InvalidArgumentException if query's select does not contain named parameters only.
* @since 2.0.11
*/
protected function prepareInsertSelectSubQuery($columns, $schema, $params = [])
{
if (!is_array($columns->select) || empty($columns->select) || in_array('*', $columns->select)) {
throw new InvalidArgumentException('Expected select query object with enumerated (named) parameters');
}
list($values, $params) = $this->build($columns, $params);
$names = [];
$values = ' ' . $values;
foreach ($columns->select as $title => $field) {
if (is_string($title)) {
$names[] = $schema->quoteColumnName($title);
} elseif (preg_match('/^(.*?)(?i:\s+as\s+|\s+)([\w\-_\.]+)$/', $field, $matches)) {
$names[] = $schema->quoteColumnName($matches[2]);
} else {
$names[] = $schema->quoteColumnName($field);
}
}
return [$names, $values, $params];
}
View on GitHub (pinned to 66f00d18a2)
When it happens
Trigger: Thrown at framework/db/QueryBuilder.php:413 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of yiisoft/yii2@66f00d18a2 (2026-08-17).
Data as JSON: /api/errors/3e081e14dfc60a27.
Report an issue: GitHub.