wpdb::_insert_replace_helper( string $table, array $data, string[]|string $format = null, string $type = 'INSERT' ): int|false

Helper function for insert and replace.

Description

Runs an insert or replace query based on $type argument.

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).
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

$typestringoptional
Type of operation. Either 'INSERT' or 'REPLACE'.
Default 'INSERT'.

Default:'INSERT'

Return

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

Source

public function _insert_replace_helper( $table, $data, $format = null, $type = 'INSERT' ) {	$this->insert_id = 0;	if ( ! in_array( strtoupper( $type ), array( 'REPLACE', 'INSERT' ), true ) ) {	return false;	}	$data = $this->process_fields( $table, $data, $format );	if ( false === $data ) {	return false;	}	$formats = array();	$values = array();	foreach ( $data as $value ) {	if ( is_null( $value['value'] ) ) {	$formats[] = 'NULL';	continue;	}	$formats[] = $value['format'];	$values[] = $value['value'];	}	$fields = '`' . implode( '`, `', array_keys( $data ) ) . '`';	$formats = implode( ', ', $formats );	$sql = "$type INTO `$table` ($fields) VALUES ($formats)";	$this->check_current_query = false;	return $this->query( $this->prepare( $sql, $values ) ); } 

Changelog

VersionDescription
3.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.