Запись в БД — обновить метаполя для разных постов в одном запросе
Делаю небольшой парсер, нужно сразу несколько значений обновить в БД
использую вот такой метод:
$post_ids = array(3,4);
$post_title = array('title3', 'title4');
wpdb_update( $wpdb->prefix . 'tablename', [ 'meta_value'=> $post_title ], [ 'post_id' => $post_ids ] );
Нужно, одновременно обновить несколько значений
Тоесть в строке:
post_id => 3 обновить meta_value => title3
post_id => 4 обновить meta_value => title4
Это для примера только 2 значения, массивы могут быть и больше. Можно для этого использовать цикл foreach или есть другой метод? Желательно с наглядным примером.
Тут думаю проще свой запрос создать.
Чтобы обновить различные значения для различных конкретных идентификаторов (ID) в одном запросе, вы можете использовать оператор CASE в UPDATE запросе:
Обхожусь пока вот таким вариантом:
$array = array('заголовок 1', 'заголовок 2', 'заголовок 3', 'заголовок 4'); $array_img = array('картинка 1', 'картинка 2', 'картинка 3', 'картинка 4'); $array_link = array('ссылка 1', 'ссылка 2', 'ссылка 3', 'ссылка 4'); $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[0], 'meta_key' => $array_img[0], 'meta_link' => $array_link[0] ], [ 'user_id' => 1 ] ); $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[1], 'meta_key' => $array_img[1], 'meta_link' => $array_link[1] ], [ 'user_id' => 2 ] ); $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[2], 'meta_key' => $array_img[2], 'meta_link' => $array_link[2] ], [ 'user_id' => 3 ] ); $wpdb->update( $wpdb->prefix . 'tablename', [ 'meta_value' => $array[3], 'meta_key' => $array_img[3], 'meta_link' => $array_link[3] ], [ 'user_id' => 4 ] );Подскажи условие if которое проверит есть ли в бд таблица с названием wp_tablename
В WordPress, вы можете проверить существование таблицы в базе данных с помощью функции $wpdb->get_var():
global $wpdb; $table_name = $wpdb->prefix . 'tablename'; if( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) ) { // таблица не существует, выполняем необходимые действия } else { // таблица существует }