优化查询,而不是使用$wpdb->insert
可以使用$wpdb->query
并使用一个插入所有项目的查询。
事实上,根据MySQL documentation:
如果要同时从同一客户端插入多行,请使用具有多个值列表的INSERT语句一次插入多行。这比使用单独的单行INSERT语句快得多(在某些情况下快很多倍)
如果你有一个数组$all_items
其中,每个数组项都是一个具有“address”、“kod”和“number”项的数组,类似于:
$all_items = array(
array( \'address\' => \'test\', \'kod\' => \'096-024\', \'number\' => \'4\' ),
array( \'address\' => \'test2\', \'kod\' => \'096-025\', \'number\' => \'5\' ),
array( \'address\' => \'test3\', \'kod\' => \'096-026\', \'number\' => \'6\' ),
);
那么你可以
$q = "INSERT INTO $ow_table_adres (address, kod, number) VALUES ";
foreach ( $all_items as $an_item ) {
$q .= $wpdb->prepare(
"(%s, %s, %d),",
$an_item[\'address\'], $an_item[\'kod\'], $an_item[\'number\']
);
}
$q = rtrim( $q, \',\' ) . \';\';
$wpdb->query( $q );