在用户名INSERT POST中加入生成唯一ID

时间:2018-07-30 04:49:42

标签: php mysql oop mysqli

当数据库生成unique_id列时,我具有在数据库中插入用户名的功能。

我如何使用户名从unique_id列获得其他后缀

所以看起来像这样。

用户名+唯一ID

示例:John92749

因此Input Post字段将在此列中添加后缀。

下面是我的功能:

//Create user
function addUser($username, $reference_user_id, $user_ip_addr) {
	global $conn;

	$unique_id = mt_rand(10000,99999);

	$stmt = $conn->prepare("SELECT p.id FROM plans p where is_default = 1");
	$stmt->execute();
	$stmt->setFetchMode(PDO::FETCH_ASSOC);
	$res = $stmt->fetch();
	$stmt = $conn->prepare("INSERT into users (username, plan_id, reference_user_id, ip_addr, unique_id) 
							VALUES (:un, :pid, :ref_id, :ip_addr, :unique_id)");
	$stmt->bindParam(':un', $username);
	$stmt->bindParam(':pid', $res['id']);
	$stmt->bindParam(':ref_id', $reference_user_id);
	$stmt->bindParam(':ip_addr', $user_ip_addr);
	$stmt->bindParam(':unique_id', $unique_id);

	$stmt->execute();
	$uid = $conn->lastInsertId();
	$stmt = $conn->prepare("INSERT into user_plan_history (user_id, plan_id,status,created_at) VALUES (:uid, :pid,'active',:date)");
	$stmt->bindParam(':date', date('Y-m-d H:i:s'));
	$stmt->bindParam(':uid', $uid);
	$stmt->bindParam(':pid', $res['id']);
	$stmt->execute();
}

2 个答案:

答案 0 :(得分:2)

您必须合并两个变量 像

$uname = $username.''.$unique_id;

然后您的代码如下:

//Create user
function addUser($username, $reference_user_id, $user_ip_addr) {
    global $conn;

    $unique_id = mt_rand(10000,99999);

    $uname = $username.''.$unique_id;

    $stmt = $conn->prepare("SELECT p.id FROM plans p where is_default = 1");
    $stmt->execute();
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $res = $stmt->fetch();
    $stmt = $conn->prepare("INSERT into users (username, plan_id, reference_user_id, ip_addr, unique_id) 
                            VALUES (:un, :pid, :ref_id, :ip_addr, :unique_id)");
    $stmt->bindParam(':un', $uname);
    $stmt->bindParam(':pid', $res['id']);
    $stmt->bindParam(':ref_id', $reference_user_id);
    $stmt->bindParam(':ip_addr', $user_ip_addr);
    $stmt->bindParam(':unique_id', $unique_id);

    $stmt->execute();
    $uid = $conn->lastInsertId();
    $stmt = $conn->prepare("INSERT into user_plan_history (user_id, plan_id,status,created_at) VALUES (:uid, :pid,'active',:date)");
    $stmt->bindParam(':date', date('Y-m-d H:i:s'));
    $stmt->bindParam(':uid', $uid);
    $stmt->bindParam(':pid', $res['id']);
    $stmt->execute();
}

这将给出输出:John92749

答案 1 :(得分:0)

尝试一下

List::class.java