insert_data

(CDBT 2.0.0)

insert_data指定のテーブルにデータ(行)を挿入します

Description

mixed insert_data ( string $table_name, array $data )
指定のテーブルにデータ(行)を挿入します。データの挿入に成功した場合には、挿入行のプライマリーキーの値もしくはTRUEを返します。最終的なインサート処理はWordPressの$wpdb->insert()をラップしています。

Parameters

table_name
データを挿入するテーブル名。
data
挿入するデータの配列。カラム名をキーとした連想配列で指定します。

Return

データを挿入するテーブルにプライマリーキー(自動採番方式の数値型サロゲート・キー)が存在する場合、データを挿入した行のプライマリーキーの数値を返します。プライマリーキーがないテーブルの場合はTRUEが返ります。データ挿入に失敗した場合にはFALSEが返ります。

History

バージョン 内容
2.0.0 CDBT v1の同名メソッドをリファクタリング
2.0.5 cdbt_before_insert_dataフィルターを追加

Example

例1 データを1行登録する。

<?php
global $cdbt;
$inserted_id = $cdbt->insert_data( "prefix_table", [ "column1" => 1, "column2" => "String" ] );
if ( $inserted_id && is_int( $inserted_id ) ) {
  echo "There was inserted one data.";
}

例2 ランダムなデータを100件登録する。

<?php
/**
 * Column structure for inserting data:
 * `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
 * `name` varchar(50) NOT NULL,
 * `gender` enum('male','female') DEFAULT NULL,
 * `age` tinyint(4) unsigned DEFAULT NULL,
 * `user_id` bigint(20) unsigned DEFAULT NULL,
 * `profile` text,
 * `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Created Datetime',
 * `updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Updated Datetime',
 */
global $cdbt;
$table_name = "prefix_table";
$insertions = 100;
$first_names = [
  'male' => [ 'James', 'John', 'Robaert', 'Michael', 'William', 'David', 'Richard', 'Charles', 'Joseph', 'Thomas' ], 
  'female' => [ 'Mary', 'Patricia', 'Linda', 'Barbara', 'Elizabeth', 'Jennifer', 'Maria', 'Susan', 'Margaret', 'Dorothy' ]
];
$last_names = [ 'Smith', 'Johnson', 'Williams', 'Jones', 'Brown', 'Davis', 'Miller', 'Wilson', 'Moore', 'Taylor' ];
$genders = array_keys( $first_names );
$inserted_ids = [];
for ( $_i = 0; $_i < $insertions; $_i++ ) {
  $gender = $genders[mt_rand( 0, 1 )];
  $first_name = $first_names[$gender][mt_rand( 0, 9 )];
  $last_name = $last_names[mt_rand( 0, 9 )];
  $data = [ 
    'name' => $first_name .' '. $last_name, 
    'gender'=> $gender, 
    'age' => mt_rand( 1, 100 ), 
    'user_id' => mt_rand( 1, 99 ), 
    'profile' => md5( $first_name . $last_name . $gender . srand( (float) microtime() ) ), 
    'created' => date_i18n( 'Y-m-d H:i:s' )
  ];
  if ( is_int( $_id = $cdbt->insert_data( $table_name, $data ) ) ) {
    $inserted_ids[] = $_id;
    unset( $_id );
  }
}
print_r( $inserted_ids );

Included Hooks

Reference

Related Methods

  • get_data()指定のテーブルから任意のデータを取得します
  • find_data()指定されたキーワードを含むデータを検索します
  • update_data()指定テーブルのデータを更新します

Related Codex