我试图将登录令牌存储在数据库中,但是出现多个错误。我到处看,但找不到解决方案。
我尝试了多种操作,对于id列,我尝试为null,
我尝试这样做:
DB::query('INSERT INTO login_token (token, user_id) VALUES (null, :token, :user_id)', array(':token'=>sha1($token), ':user_id'=>$user_id));
但是然后我得到这个错误:SQLSTATE [HY000]:常规错误:1364字段“ id”没有默认值
最后,我尝试使用:(''),但这是针对字符串而非整数
这是我当前的代码:
$cstrong = True;
$token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong));
$user_id = DB::query('SELECT user_id FROM user WHERE username = :username', array(':username'=>$username))[0]['user_id'];
DB::query('INSERT INTO login_token VALUES (null, :token, :user_id)', array(':token'=>sha1($token), ':user_id'=>$user_id));
数据库表如下:
id int
令牌字符(64)
user_id int
也许有人可以帮助我解决这个问题
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。