wpdb::_insert_replace_helper() WordPress Method

The wpdb::_insert_replace_helper() method is used internally by the wpdb class to handle the details of INSERT and REPLACE queries. This method should not be called directly.

wpdb::_insert_replace_helper( string $table, array $data, array|string $format = null, string $type = 'INSERT' ) #

Helper function for insert and replace.


Description

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

Top ↑

See also


Top ↑

Parameters

$table

(string)(Required)Table name.

$data

(array)(Required)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.

$format

(array|string)(Optional) 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 value: null

$type

(string)(Optional) Type of operation. Possible values include 'INSERT' or 'REPLACE'.

Default value: 'INSERT'


Top ↑

Return

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


Top ↑

Source

File: wp-includes/wp-db.php

	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 ) );
	}


Top ↑

Changelog

Changelog
VersionDescription
3.0.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.