我已设置此查询
INSERT INTO pa_users (fname,lname,email,phone,fbid) VALUES ?
ON DUPLICATE KEY UPDATE fbid=VALUES(fbid),
fname= VALUES(fname),lname= VALUES(lname),email= VALUES(email),phone= VALUES(phone)
我正在传递此obj
{
fname: 'Demo',
lname: 'User',
email: 'demo@facebook.com',
phone: '6352417890',
fbid: 'KHFDALJHGJDGWKGKDFDAFAJKLGEKLQAW'
}
在运行此查询时,出现sql语法错误。
注意:fbid不是pk。
错误:
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage: 'You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near
\'`fname` = \'Demo\', `lname` = \'user\', `email` = \'user@facebook.com\',
`phone` = \'63\' at line 1',
sqlState: '42000',
index: 0,
sql: 'INSERT INTO pa_users (fname,lname,email,phone,fbid) VALUES `fname` =
\'Demo\', `lname` = \'user\', `email` = \'user@facebook.com\', `phone` =
\'6352417890\', `fbid` = \'KHFDALJHGJDGWKGKDFDAFAJKLGEKLQAW\'\n ON
DUPLICATE KEY UPDATE fbid=VALUES(fbid),\n fname=
VALUES(fname),lname= VALUES(lname),email= VALUES(email),phone=
VALUES(phone)' }
答案 0 :(得分:0)
尝试像这样拆分查询
INSERT INTO table(a, b) values ('fgfg', 'fgfg') ON DUPLICATE KEY UPDATE
fbid=VALUES(fbid);
答案 1 :(得分:0)
您的主键或唯一键是什么?如果出现重复,则无需更新该值。就像如果fbid是主键/唯一键,查询将是
INSERT INTO pa_users (fname, lname, email, phone, fbid) VALUES ?
ON DUPLICATE KEY UPDATE fname = VALUES(fname), lname = VALUES(lname), email = VALUES(email), phone = VALUES(phone);