- Custom DataBase Tables
- CDBT Version 2.x
- メソッド・リファレンス
- insert_data
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
- cdbt_before_insert_dataデータ登録する直前のデータをフィルターします
- cdbt_after_inserted_dataデータの登録処理後にフックします
Reference
Related Methods
- get_data()指定のテーブルから任意のデータを取得します
- find_data()指定されたキーワードを含むデータを検索します
- update_data()指定テーブルのデータを更新します
Related Codex