首页 > 解决方案 > 使用 MySQL 查询创建 WordPress 用户

问题描述

尝试通过运行查询直接通过 MySQL 创建新的 WordPress 用户。我一直看到一个错误消息弹出:

1292 - 不正确的日期时间值:第 1 行的列 'user_registered' 的 '0000-00-00 00:00:00'

怎么能包括缺少的东西?

INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`)
VALUES ('adminuser2', MD5('adminuser2password'), 'adminfirstname adminlastname', 'adminuser2@mywebsite.com', '0');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) 
VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) 
VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');

标签: mysqlwordpress

解决方案


遵循此语法,这是在使用 WordPress 时插入数据的推荐方式

$wpdb->insert( $table_name, array('column_name_1'=>'hello', 'other'=> 123), array( '%s', '%d' ) );

定义一个变量: $blogtime = current_time( 'mysql' );然后将“user_registered”列添加到您的查询中

$wpdb->insert( 'wp_users' , array(
    'user_login' => 'adminuser2',
    'user_pass'  => MD5('adminuser2password'),
    'user_nicename'=> 'adminfirstname adminlastname',
    'user_email'=> 'adminuser2@mywebsite.com',
    'user_status'=> '0',
    'user_registered'=> '$blogtime' 
));

推荐阅读