1
我有這些表:預處理語句:重複鍵更新與在
stundenplan
+----+---------+-------+--------+---------+---------+------+
| id | user_id | tag | stunde | fach | lehrer | raum |
+----+---------+-------+--------+---------+---------+------+
| 1 | 1 | 1 | 1 | MATH | SM | 101 |
| 2 | 1 | 1 | 2 | MATH | SM | 101 |
| 3 | 1 | 1 | 3 | MATH | SM | 101 |
| 4 | 1 | 1 | 4 | MATH | SM | 101 |
| 5 | 1 | 1 | 5 | MATH | SM | 101 |
| 6 | 1 | 1 | 6 | MATH | SM | 101 |
| 7 | 1 | 2 | 1 | MATH | SM | 101 |
| 8 | 1 | 2 | 2 | MATH | SM | 101 |
| .. | ... | ... | ... | ... | ... | ... |
users
+---------+----------+----
| user_id | username | ...
+---------+----------+----
| 1 | User1 | ...
+---------+----------+----
我的查詢(這沒有意義對我來說,因爲user_id是在更新部分丟失):
$sql = $db->prepare("
INSERT INTO stundenplan
(tag, stunde, user_id, fach, lehrer, raum)
VALUES
(?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
fach = VALUES(fach),
lehrer = VALUES(lehrer),
raum = VALUES(raum)
");
$sql->bind_param('iiissi', $input_tag, $input_stunde, $input_fach, $input_lehrer, $input_raum);
如果我將不得不插入一些查詢會是這樣:
INSERT INTO stundenplan (tag, stunde, user_id, fach, lehrer, raum) VALUES (?, ?, ?, ?, ?, ?)
如果我將不得不更新查詢會是這樣:
UPDATE stundenplan SET fach = ?, lehrer = ?, raum = ? WHERE user_id = ?
我怎麼能這兩個查詢組合成一個像我以前試過嗎?
什麼是stundenplan表的唯一鍵像樣的文章? –
目前標籤,stunde。是標記,stunde,user_id更好? – Bernd
user_id是學生嗎?或者它是技術性的東西(創建/修改計劃的用戶)? –