我使用过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/