无法在WordPress中使用wpdb-> insert查询插入数据库

时间:2019-12-20 14:30:52

标签: mysql wordpress

我用过MySQL。

我在这里创建了这样的表。

 function pw_sample_plugin_create_table() {

$created = dbDelta(
  "CREATE TABLE peoplesss (
    ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    first_name varchar(60) NOT NULL DEFAULT '',
    last_name varchar(64) NOT NULL DEFAULT '',
    email varchar(100) NOT NULL DEFAULT '',
    PRIMARY KEY (ID),
    KEY email (email)
  ) CHARACTER SET utf8 COLLATE utf8_general_ci;"
);

 }
 register_activation_hook( __FILE__, 'pw_sample_plugin_create_table' );

然后我尝试使用$ wpdb-> insert插入数据,但是失败了。

 global $wpdb;
 $table = $wpdb->prefix.'peoplesss';
 $a= $wpdb->insert( $table, array('first_name' => 'Kishan', 'last_name' => 'Kishan', 'email' => 'kishan.davda'));

我应该更改什么来插入数据?

1 个答案:

答案 0 :(得分:0)

正如评论所说,您创建了一个没有前缀的表。前缀通常为wp_,这意味着您前缀的表名称为wp_peoplesss

这是东西。创建无前缀表的WordPress插件是粗鲁的插件。许多WordPress东西都假定前缀遵循约定。如果您不这样做,您将使用户的生活更加艰难。

因此,请修复代码以在创建表时应用前缀。

尝试这样的事情:

$tbldef = "CREATE TABLE " . $wpdb->prefix . "peoplesss (
    ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    first_name varchar(60) NOT NULL DEFAULT '',
    last_name varchar(64) NOT NULL DEFAULT '',
    email varchar(100) NOT NULL DEFAULT '',
    PRIMARY KEY (ID),
    KEY email (email)
  ) CHARACTER SET utf8 COLLATE utf8_general_ci;";
$created = dbDelta(tbldef);