On this page
wpdb::_insert_replace_helper( string $table, array $data, array|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
- wpdb::prepare()
- wpdb::$field_types
- wp_set_wpdb_vars()
Parameters
$tablestring Required-
Table name.
$dataarray 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. $formatarray|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:
null $typestring Optional-
Type of operation. Possible values include
'INSERT'or'REPLACE'.
Default'INSERT'.Default:
'INSERT'
Return
int|false The number of rows affected, or false on error.
Source
File: wp-includes/class-wpdb.php. View all references
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 ) );
}
Related
Uses
| Uses | Description |
|---|---|
| wpdb::process_fields() wp-includes/class-wpdb.php | Processes arrays of field/value pairs and field formats. |
| wpdb::query() wp-includes/class-wpdb.php | Performs a database query, using current database connection. |
| wpdb::prepare() wp-includes/class-wpdb.php | Prepares a SQL query for safe execution. |
Used By
| Used By | Description |
|---|---|
| wpdb::insert() wp-includes/class-wpdb.php | Inserts a row into the table. |
| wpdb::replace() wp-includes/class-wpdb.php | Replaces a row in the table. |
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wpdb/_insert_replace_helper