wpdb::insert()publicWP 2.5.0

Inserts a row into the table.


wpdb::insert( 'table', array( 'column' => 'foo', 'field' => 'bar' ) )
wpdb::insert( 'table', array( 'column' => 'foo', 'field' => 1337 ), array( '%s', '%d' ) )

Method of the class: wpdb{}

No Hooks.


Int|false. The number of rows inserted, or false on error.


global $wpdb;
$wpdb->insert( $table, $data, $format );
$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.
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



#1 Insert a line into the database table

// insert string with values for two fields (values for other fields will be default)
$wpdb->insert( 'table', [ 'column' => 'foo', 'field' => 'bar' ] );

// specifying data types
$wpdb->insert( 'table', [ 'column' => 'foo', 'field' => 1337 ], [ '%s', '%d' ] );

#2 Getting the ID of the inserted object

To get it, use $wpdb->insert_id:

global $wpdb;

$table = $wpdb->prefix . 'my_table_name';
$data = [ 'column1' => 'data one', 'column2' => 123 ];

$wpdb->insert( $table, $data );

$my_id = $wpdb->insert_id;



Since 2.5.0 Introduced.

wpdb::insert() code WP 6.1.1

public function insert( $table, $data, $format = null ) {
	return $this->_insert_replace_helper( $table, $data, $format, 'INSERT' );