Wordpress检查重复并插入数据

时间:2016-12-20 17:48:22

标签: php wordpress insert

我正在尝试将其他网站的数据添加到我的Wordpress网站。为此,我创建了一个插件。在这个插件中,我可以从我的其他网站获取数据,但我不能和我的Wordpress网站。以下是我的代码。

$mysqlis=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

     $slug = str_replace(" ","-",$value);

     $checkdublicate = $mysqlis->query("SELECT * FROM `temp_wp_terms` WHERE `slug` = '.$slug.' AND `name`='.$value.'");

     if ($checkdublicate->num_rows == "0") 
     {
        if ($value != "." && $value != "..")
        {
         $query = "INSERT INTO `temp_wp_terms`(`name`, `slug`, `term_group`) VALUES ('.$value.', '.$slug.', '0')";
         $mysqlis->query($query);
            if(!$mysqlis)
            {
            echo "Error in insert";
            } 
        }
         else
         {
             mylog("173 insert failed NoRow: " .print_r($checkdublicate->num_rows,TRUE));

         }
     }
     $mysqlis->close();

请给我任何解决方案。谢谢

1 个答案:

答案 0 :(得分:0)

如果您使用的是插件,则应使用全局$ wpdb对象而不是mysqli。 $ wpdb提供了一种准备自定义查询的方法,并自动使用wordpress配置文件中的数据库凭据。

尝试类似这样的事情(如果你设置了适当的索引,替换查询将避免重复。):

global $wpdb;

$query = $wpdb->prepare( "REPLACE INTO `temp_wp_terms`(`name`, `slug`, `term_group`) VALUES (%s, %s, %d)", $value, $slug, 0 );

$wpdb->query( $query )

来源:https://developer.wordpress.org/reference/classes/wpdb/