在 postgres 中插入编码密码时出错
Error at insert encode password in postgres
我已经创建了这个 psql table 代码:
CREATE TABLE admin (id INT NOT NULL, username VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
然后
INSERT INTO admin (id, username, roles, password) VALUES (nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$m=65536,t=4,p=1$Kcm6sv104bqBtb+FEh+dDQ$caej4aGFAYMvBqKNHgFAGw6+1rua1Iwk/g09mYbOCLMx’);
我在终端端没有一个错误,但在 table 上有 0 行,我错过了什么代码吗?
如果您仔细查看您的值(在下方被截断!),您会发现最后一个单引号实际上是“右单引号”(U+2019) 而不是“单引号”/ “撇号”(U+0027),而所有其他引号都应该是撇号。
(nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$...’)
^-- this one
如果你仔细观察,你会发现它甚至看起来都不一样。您可以放大以更轻松地查看差异。
解决方法是将最后一个替换为撇号/单引号(U+0027):
INSERT INTO admin (id, username, roles, password) VALUES (nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$m=65536,t=4,p=1$Kcm6sv104bqBtb+FEh+dDQ$caej4aGFAYMvBqKNHgFAGw6+1rua1Iwk/g09mYbOCLMx');
我已经创建了这个 psql table 代码:
CREATE TABLE admin (id INT NOT NULL, username VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
然后
INSERT INTO admin (id, username, roles, password) VALUES (nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$m=65536,t=4,p=1$Kcm6sv104bqBtb+FEh+dDQ$caej4aGFAYMvBqKNHgFAGw6+1rua1Iwk/g09mYbOCLMx’);
我在终端端没有一个错误,但在 table 上有 0 行,我错过了什么代码吗?
如果您仔细查看您的值(在下方被截断!),您会发现最后一个单引号实际上是“右单引号”(U+2019) 而不是“单引号”/ “撇号”(U+0027),而所有其他引号都应该是撇号。
(nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$...’)
^-- this one
如果你仔细观察,你会发现它甚至看起来都不一样。您可以放大以更轻松地查看差异。
解决方法是将最后一个替换为撇号/单引号(U+0027):
INSERT INTO admin (id, username, roles, password) VALUES (nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$m=65536,t=4,p=1$Kcm6sv104bqBtb+FEh+dDQ$caej4aGFAYMvBqKNHgFAGw6+1rua1Iwk/g09mYbOCLMx');