此代码将只更新列:如何将值插入MySQL表的特定空白列?
更新用户设置 workexperience = '$ workexperience',技能= '$技巧',经验= '$经验',sailentFeature = '$ sailentFeature',skill1 = '$ skill1',体验1 = '$体验1'
其中USER_ID = '$ user_ID的'
但我想值插入使用参考列MySQL表的balnk列。 任何人都可以解释如何同时使用INSERT和UPDATE吗?
此代码将只更新列:如何将值插入MySQL表的特定空白列?
更新用户设置 workexperience = '$ workexperience',技能= '$技巧',经验= '$经验',sailentFeature = '$ sailentFeature',skill1 = '$ skill1',体验1 = '$体验1'
其中USER_ID = '$ user_ID的'
但我想值插入使用参考列MySQL表的balnk列。 任何人都可以解释如何同时使用INSERT和UPDATE吗?
如果您的形式接受值A,B和C,但不是d,E和F,那么你不喜欢的查询:
INSERT INTO users (A,B,C) VALUES (?,?,?)
然后你捕捉LAST_INSERT_ID()
值知道哪个行标识符在这里设置,因为你的user_id
列应该是AUTO_INCREMENT
,以便正常工作。
然后你在第二部分做一个更新:
UPDATE users SET D=?,E=?,F=? WHERE user_id=?
这填补了空白,有效。
我不确定我是否完全理解你想要做什么。我假设你想插入新的记录,如果不存在于你的数据库中。同时你想要更新现有记录,如果有更改或空字段。
创建您独特的列上的唯一约束,也许在你的情况是USER_ID:
ALTER TABLE users ADD UNIQUE (user_id)
使用INSERT ... ON DUPLICATE KEY UPDATE
功能。可以阅读更多here:
INSERT INTO users
(col1, col2, col3)
VALUES
(?, ?, ?)
ON DUPLICATE KEY UPDATE
col1 = VALUES(var1),
col2 = VALUES(var2)
** WARNING **:这有一些严重的[SQL注入漏洞(http://bobby-tables.com/),因为'$ _GET'数据被内部使用查询。尽可能使用**准备好的陈述**。这些在['mysqli'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[PDO](http://php.net/manual/)中很简单en/pdo.prepared-statements.php)其中任何用户提供的数据都是用'?'或':name'指示符指定的,后者使用'bind_param'或'execute'填充,具体取决于您使用的是哪一个。 **绝不**将'$ _POST','$ _GET'或任何用户数据直接放入您的查询中。 – tadman
是否要创建新记录或更新现有记录?你是什么意思插入空白列的值? – tadman
任何时候当你在桌子上列举列时,你都可以确定你的设计是有缺陷的。 – Strawberry