6 declare(strict_types=1);
23 private $resourceConnection;
45 $connection = $this->resourceConnection->getConnection();
46 $tableName = $this->resourceConnection->getTableName(SourceItemResourceModel::TABLE_NAME_SOURCE_ITEM);
48 $columnsSql = $this->buildColumnsSqlPart([
55 $onDuplicateSql = $this->buildOnDuplicateSqlPart([
62 'INSERT INTO %s (%s) VALUES %s %s',
75 private function buildColumnsSqlPart(array
$columns): string
77 $connection = $this->resourceConnection->getConnection();
79 $sql = implode(
', ', $processedColumns);
87 private function buildValuesSqlPart(array
$sourceItems): string
89 $sql = rtrim(str_repeat(
'(?, ?, ?, ?), ', count(
$sourceItems)),
', ');
97 private function getSqlBindData(array
$sourceItems): array
101 $bind = array_merge($bind, [
115 private function buildOnDuplicateSqlPart(array
$fields): string
117 $connection = $this->resourceConnection->getConnection();
118 $processedFields = [];
120 $processedFields[] = sprintf(
'%1$s = VALUES(%1$s)',
$connection->quoteIdentifier($field));
122 $sql =
'ON DUPLICATE KEY UPDATE ' . implode(
', ', $processedFields);
__construct(ResourceConnection $resourceConnection)
execute(array $sourceItems)