2016-08-03 36 views
1
$stmt = $db->prepare("UPDATE reservations SET name = :name, start = :start, end = :end, room_id = :room, status = :status, paid = :paid, customer = :customer, name_ship = :name_ship, equipment = :equipment, port = :port, ETA = :ETA, ETD = :ETD, service_id = :service_id, service_classification = :service_classification, job = :job WHERE id = :id"); 

嗨! 我有這個查詢,我想將其轉換爲INSERT格式。 當我這樣做時,沒有任何反應。謝謝您的建議SQL更新到INSERT

"INSERT INTO reservations (name, start,...) VALUES (:name, :start,...) WHERE id = :id"; 
+0

爲什麼在'insert'語句中有'where'標準?什麼樣的數據類型是'id'?如果它是自動增量,只需刪除'where'標準。如果沒有,你必須將它包含在你的列和值列表中...... – sgeddes

+0

你是什麼意思「INSERT格式」? 'INSERT'和'UPDATE'做了兩件完全不同的事情:你使用的是你想要完成的操作。 –

+0

INSERT INTO ... WHERE沒有意義,你不能做一個條件插入,但你可以有條件*調用你的插入。你是否想過['ON DUPLICATE KEY'](http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html)功能? – tadman

回答

1

因爲你正在做的INSERT你應該放下WHERE條款。

例如

INSERT INTO reservations (name, start,...) VALUES (:name, :start,...)