开发者社区> 问答> 正文

SQLSTATE [23000]:违反完整性约束:1048 /Notite-Applicatie/a

我试图将登录令牌存储在数据库中,但是出现多个错误。我到处看,但找不到解决方案。

我尝试了多种操作,对于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

也许有人可以帮助我解决这个问题

展开
收起
几许相思几点泪 2019-12-08 22:13:59 484 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载