【发布时间】:2018-07-09 15:07:18
【问题描述】:
使用下面的代码,我怎样才能在我的数据库中添加一个默认值为“user”的用户名,然后是“id”字段,例如第 15 个用户它变成“user15”?
我不确定在哪里添加默认用户名,我也不是 100% 的语法。
澄清:我想要一个静态字符串(“用户”)并将其与数据库中自动递增的“id”字段连接起来。
更新:似乎不可能立即连接自动递增的值,所以:关于如何生成默认用户名的任何建议?用户名字段是唯一的。
$firstname = $profile['first_name'];
$lastname = $profile['last_name'];
$email = $profile['email'];
$picture = $profile['picture']['url'];
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("
INSERT INTO users (
firstname,
lastname,
email,
picture,
token
)
VALUES (
:firstname,
:lastname,
:email,
:picture,
:token)"
);
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':picture', $picture);
$stmt->bindParam(':token', $accessToken);
$stmt->execute();
echo "Thank you for registering";
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
} else {
$loginUrl = $helper->getLoginUrl('mywebsite.com/fblogin/index.php', $permissions);
echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
}
【问题讨论】:
-
虽然不能保证它是唯一的,但uniqid() 可能是一个好的开始。如果您没有数百万用户,您可能永远不会遇到冲突。
-
UUID 也是一个选项。重复的机会大约是 0.00000000006 (6 × 10−11)。
-
您可以插入一条空白/null/列的默认值为用户名的记录,然后调用插入 ID,然后更新用户名。
标签: php mysql concatenation