先删除表中的所有记录,然后在WordPressSQL查询表中插入新记录

avwztpqn  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(336)

我试图开发一个自定义插件使用面向对象编程。我想先检查表是否已经有值,如果表有值,然后删除表中的所有值,并将id重置为零。之后我想在wordpress的表中安装新记录。如何在wordpress查询中做到这一点?你能帮帮我吗?
这是我的insert代码:在insert之前,我需要检查table have values,如果table have values,我要删除该表中的所有值,在delete之后,我需要向表中插入新数据。

foreach($wc_reviews as $wc_review){
      echo $post_id =  $wc_review->comment_post_ID;
        $customer_name = get_comment_author($wc_review);
        $location = "Test";

        $description = get_comment_text($wc_review);
        $featured_img_url = get_the_post_thumbnail_url($post_id,'full');
        $table_name = $wpdb->prefix . 'review_data';

       $wpdb->insert( 
            $table_name, 
            array( 
                'customer_name' => $customer_name, 
                'location' => $location, 
                'image' => $featured_img_url, 
                'description' => $description, 
                'time' => current_time('mysql'), 
            ) 
        );
    }
w6mmgewl

w6mmgewl1#

如果要删除所有行并重置id,则应执行此查询

Truncate table yourTableName

根据wordpress文档,您可以检查表是否存在

if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
2sbarzqh

2sbarzqh2#

您可以使用 select 查询:

$list = $wpdb->get_results("SELECT * FROM tablename)

如果表为空 $list 将是空数组。如果它返回任何数据,您可以截断该表,id将重置为0。

$wpdb->query('TRUNCATE TABLE tablename')

在此之后,您可以进行插入。

相关问题