diff --git a/src/Database/Dialect/SqliteDialectTrait.php b/src/Database/Dialect/SqliteDialectTrait.php index 06415cd0baf..d60e5bc854d 100644 --- a/src/Database/Dialect/SqliteDialectTrait.php +++ b/src/Database/Dialect/SqliteDialectTrait.php @@ -116,15 +116,21 @@ protected function _insertQueryTranslator($query) { $newQuery = $query->connection()->newQuery(); $cols = $v->columns(); + $placeholder = 0; $replaceQuery = false; + foreach ($v->values() as $k => $val) { $fillLength = count($cols) - count($val); if ($fillLength > 0) { $val = array_merge($val, array_fill(0, $fillLength, null)); } - $val = array_map(function ($val) { - return $val instanceof ExpressionInterface ? $val : '?'; - }, $val); + + foreach ($val as $col => $attr) { + if (!($attr instanceof ExpressionInterface)) { + $val[$col] = sprintf(':c%d', $placeholder); + $placeholder++; + } + } $select = array_combine($cols, $val); if ($k === 0) {