Hello Friend我需要关于Mysql的帮助。我的数据库看起来像这样 表名=用户
行
id = "7" | YourLastIP = ""
我的查询是:
UPDATE users SET `YourLastIP` = `XX.XX.XX.XX` WHERE `id` = `7`
我想插入,但它也不适合我,请指导我
INSERT INTO Users `YourLastIP` = (`XX.XX.XX.XX`) WHERE `id` = `7`
请帮助我如果表值未知,如何插入值。
答案 0 :(得分:1)
你正在使用反引号,这意味着你在MySQL中意味着一个列名,而不是文本。请改用单引号'
。
答案 1 :(得分:0)
首先,问题是你用反引号包装了值,因为它是一个字符串文字,所以假设它是单引号。
UPDATE users SET `YourLastIP` = 'XX.XX.XX.XX' WHERE `id` = '7'
其次,如果您想要INSERT ... ON DUPLICATE KEY UPDATE
现有 ID ,请使用UPDATE
,否则INSERT
如果不存在,则使用INSERT INTO users(ID, YourLastIP)
VALUES (7, 'ip_here')
ON DUPLICATE KEY UPDATE YourLastIP = 'ip_here'
。
PreparedStatements
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用{{1}},您可以摆脱在值周围使用单引号。
答案 2 :(得分:0)
在定义
中使列为NULLABLE然后,
CREATE TABLE PRO(ID INT, YOURLASTIP VARCHAR(15));
INSERT INTO PRO values(4, "xxx.xxx.xxx.xxx");