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

标签 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'));

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

最佳答案

正如评论所说,您创建了一个没有前缀的表。前缀通常是 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);

关于mysql - 无法在 WordPress 中使用 wpdb->insert 查询插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59426919/

相关文章:

php - 如何消除 WooCommerce 商店中产品类别之间的差距?

php - 从查询创建多数组

mysql - 在 MySQL 中使用 SSRS 报告

MySQL - 电池维护的困难分组

mysql - Wordpress:使用类别 slug 使用 mysql 查询获取类别 ID

wordpress - 如何覆盖 Siteorigin 中的现有字段?

c++ - 如何使用C++将csv文件数据存储到mysql表中?

php - MySQL:您的 SQL 语法有错误;第 5 行 '' 附近

Paypal 'Pay now' 按钮与 wordpress 中的联系表

javascript - 从代码行中删除 href