gpt4 book ai didi

php - 使用 SQL 将新用户和用户元添加到数据库中

转载 作者:行者123 更新时间:2023-11-29 21:50:24 24 4
gpt4 key购买 nike

我使用它在 WordPress 数据库中创建一个新用户...

// Add user to WP users table.
$user_table_name = $wpdb->prefix . "users";
$unique_string = substr(md5(rand(0, 1000000)), 0, 10);
$wpdb->insert( $user_table_name, array(
'user_login' => sanitize_text_field($_POST['email']),
'user_pass' => sanitize_text_field(MD5($unique_string)),
'user_email' => sanitize_text_field($_POST['email']),
'user_registered' => sanitize_text_field(date("Y-n-d G:i:s")),
'user_status' => $_POST['1'],
'display_name' => sanitize_text_field($_POST['first_name']) . " " . sanitize_text_field($_POST['last_name'])
) );

...效果很好,让我们假设该用户的 ID 在数据库表中为 1234(感谢自动增量)。

所以现在我还需要将相应的用户元信息添加到该用户的usermeta表中,这就是我有点困惑的地方。

上面的代码很简单,因为它只是向表中添加一行。但 usermeta 表有所不同,因为在本例中,它需要一堆 user_ID1234 的行,每个行分别具有:

  • 昵称(我将使用电子邮件地址)
  • wp_capability(值为a:1:{s:10:"subscriber";b:1;})
  • 销售(我的自定义字段 - 值将设置为“”一词)
  • 颜色(我的另一个自定义字段 - 值将设置为“绿色”一词)

我猜测 SQL 语句将与本文开头的语句类似。

如果有人可以向我展示,那就太棒了。

更新:

这样就基本完成了。这有效:

// Add corresponding user metadata to WP users table.
$usermeta_table_name = $wpdb->prefix . "usermeta";
$last_id = $wpdb->insert_id;
$role = sanitize_text_field('a:1:{s:10:"subscriber";b:1;}');

$wpdb->query(
$wpdb->prepare(
"
INSERT INTO $usermeta_table_name (
`umeta_id`,
`user_id`,
`meta_key`,
`meta_value` )
VALUES (
NULL,
$last_id,
$usermeta_table_name . 'capabilities',
'$role' )
",
$last_id, $last_id
)
);

这将向 usermeta 表添加一行,但如何在同一语句中再添加 2 行?

最佳答案

将最后插入的行的 ID 存储到变量中:

$last_id = $wpdb->insert_id;

现在,使用此 $last_id 变量进行元数据插入。 insert_id变量由 wpdb 类提供。

关于php - 使用 SQL 将新用户和用户元添加到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com