0

我正在尝试将一些数据放入数据库中,但出现了问题。这是我的代码:

 $insert = mysql_query("
    INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES ('NULL', 'teste', MD5('teste'), 'O Meu Nome', 'o_meu@email.com', 'http://www.o_meu_site.com/', '2011-06-15 00:00:00', '', '0', 'O Meu Nome');
    ");

    $insert2 = mysql_query("
    INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, '" . mysql_insert_id() . "', 'wp_capabilities', 'a:1:{s:13:\"administrator\";b:1;}');
    ");

    $insert3 = mysql_query("
    INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, '" . mysql_insert_id() . "', 'wp_user_level', '10');
    ");

    ?>

问题是:最后一个 INSERT 使用 mysql_insert_id() 没有使用第一个查询中的 ID,而是使用 umeta_id。我需要改变什么?请帮忙

4

4 回答 4

1

这看起来像

虽然其他答案有效,但您应该真正使用该wpdb对象而不是mysql_query()直接使用该对象。

具体来说:

于 2013-01-28T21:41:55.380 回答
1

在第一个插入语句中,您在单引号中嵌入了 null。这将是一个字符串值

于 2013-01-28T21:42:27.177 回答
1
 $insert = mysql_query("
    INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES (NULL, 'teste', MD5('teste'), 'O Meu Nome', 'o_meu@email.com', 'http://www.o_meu_site.com/', '2011-06-15 00:00:00', '', '0', 'O Meu Nome');
    ");

$insertId = mysql_insert_id();

$insert2 = mysql_query("
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) 
       VALUES (NULL, '" . $insertId . "', 'wp_capabilities', 'a:1:{s:13:\"administrator\";b:1;}');
");

$insert3 = mysql_query("
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) 
       VALUES (NULL, '" . $insertId . "', 'wp_user_level', '10');
");

?>
于 2013-01-28T21:39:51.677 回答
0

您需要将返回值存储在变量中,因为mysql_insert_id()将始终使用最后一条INSERT语句中的 ID。

mysql_query("
INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES ('NULL', 'teste', MD5('teste'), 'O Meu Nome', 'o_meu@email.com', 'http://www.o_meu_site.com/', '2011-06-15 00:00:00', '', '0', 'O Meu Nome');
");
$id = mysql_insert_id();

mysql_query("
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, '" . $id . "', 'wp_capabilities', 'a:1:{s:13:\"administrator\";b:1;}');
");

mysql_query("
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, '" . $id . "', 'wp_user_level', '10');
");
于 2013-01-28T21:39:19.917 回答