W3cubDocs

/WordPress

wpdb::replace( string $table, array $data, string[]|string $format = null ): int|false

Replaces a row in the table or inserts it if it does not exist, based on a PRIMARY KEY or a UNIQUE index.

Description

A REPLACE works exactly like an INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.

Examples:

$wpdb->replace(
    'table',
    array(
        'ID'      => 123,
        'column1' => 'foo',
        'column2' => 'bar',
    )
);
$wpdb->replace(
    'table',
    array(
        'ID'      => 456,
        'column1' => 'foo',
        'column2' => 1337,
    ),
    array(
        '%d',
        '%s',
        '%d',
    )
);

See also

Parameters

$tablestringrequired
Table name.
$dataarrayrequired
Data to insert (in column => value pairs).
Both $data columns and $data values should be "raw" (neither should be SQL escaped).
A primary key or unique index is required to perform a replace operation.
Sending a null value will cause the column to be set to NULL – the corresponding format is ignored in this case.
$formatstring[]|stringoptional
An array of formats to be mapped to each of the value in $data.
If string, that format will be used for all of the values in $data.
A format is one of '%d', '%f', '%s' (integer, float, string).
If omitted, all values in $data will be treated as strings unless otherwise specified in wpdb::$field_types.

Default:null

Return

int|false The number of rows affected, or false on error.

Source

public function replace( $table, $data, $format = null ) {
	return $this->_insert_replace_helper( $table, $data, $format, 'REPLACE' );
}

Changelog

Version Description
3.0.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wpdb/replace