此代碼將只更新列:如何將值插入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