我正在尝试创建一个可以保存所有用户和登录的MySQL数据库。
表格列是: 用户身份 万能钥匙 点
每个用户的user_id必须是唯一的,并且与其密钥相同。点数只是一个整数值,我将不时编辑。现在,当我的用户访问我的网站时,我必须检查他是新用户还是旧用户。我通过查看他们的user_id是否已经在数据库中来检查,如果没有,我创建一个新的表项,输入他们的user_id,passkey和0表示点。那么,当我创建表时,我仍然必须为user_id和passkey指定唯一,即使我在创建新条目之前先检查它吗?
我如何检查user_id是否已经在系统中?我想的是: SELECT * FROM customers WHERE user_id ='test'
然后计算行数,如果它为零,我创建一个新条目,对吗?我正在尝试确保在运行代码之前完成所有操作。感谢。
答案 0 :(得分:1)
您应该指定唯一和自动增量,以便您只需填写NULL并为您完成。
但是,我担心你应该有用户名和密码......
答案 1 :(得分:1)
无论如何将字段标记为UNIQUE
是一个好主意,因为如果您错过了代码中的某些内容,数据库仍会在事情发生之前捕获错误。我不确定为什么你希望密钥是唯一的,但是两个用户有相同的密码有什么问题吗?
您的查询很好,但我猜您在查看时并不需要实际的用户详细信息,因此您可以直接询问计数:
SELECT COUNT(*) FROM customers WHERE user_id='test'
如果返回的值是> 0,user_id
已经存在。
答案 2 :(得分:1)
首先将密钥字段默认设置为0.然后,对于user_id,将其设置为auto_increment。每次添加新行(例如新用户)时,这将增加1。插入数据库时,无需检查user_id是否在系统中。
插入时只需要指定密钥,大概这是用户的密码。所有的字段编辑都可以在phpMyAdmin中完成,在您的表格的结构下。