我用过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'));
我应该更改什么来插入数据?
答案 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);