2016-08-03 3 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 UPDATE to INSERT

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

Почему у вас есть критерии 'where' в вашем заявлении' insert'? Какой тип данных является 'id'? Если это автоматический прирост, просто удалите критерии 'where'. Если нет, вы должны включить это в свой список столбцов и значений ... – sgeddes

+0

Что значит «INSERT format»? '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,...)