mini\Database\DatabaseInterface::upsert() Method

public abstract

Signature

public abstract function upsert(string $table, array $data, string $conflictColumns): int

Parameters

Name Type Default Description
$table string required Documentation missing
$data array required Documentation missing
$conflictColumns string optional Documentation missing

Returns

int

Documentation

Insert a row, or update if conflict on unique columns

Performs an "UPSERT" operation. If a row with the specified unique column values already exists, updates that row instead of inserting.

Example:

db()->upsert('users', ['email' => 'john@example.com', 'name' => 'John'], 'email');
db()->upsert('user_prefs', ['user_id' => 1, 'key' => 'theme', 'value' => 'dark'], 'user_id', 'key');

Note: MySQL's ON DUPLICATE KEY UPDATE ignores $conflictColumns and triggers on any unique constraint. Behavior may differ across databases.

Source

src/Database/DatabaseInterface.php:242