2016-08-04 3 views
-1

Я пытаюсь выполнить 2 запроса, но всякий раз, когда я следую инструкциям в Интернете по нескольким запросам, он не выполняет ни одного из запросов.Разъяснения по поводу нескольких запросов

Что я пытаюсь сделать в первом запросе, это INSERT или ADD независимо от того, что пользователь вводит в $ HISTORY в записи, которая в настоящее время находится на colHistory; IE:

Текущие данные о colHistory:

пользователь вводит 'B' на $ ИСТОРИЮ, синтаксис должен добавить 'B' на 'A', что в настоящее время на запись, или 'AB' , Затем используйте второй запрос для ОБНОВЛЕНИЯ всех других записей или столбцов в этой конкретной строке.

Вот код (Обратите внимание, что «...» означает больше код, который нужно):

$query = INSERT INTO tbInventory SET colHistory='$HISTORY' WHERE colSerno='$SERIALNUM';"; 
$query .= "UPDATE tbInventory SET 

    colImage='$IMAGE', 
    colSerno='$SERIALNUM', 

    ... 
    ... 

    colHistory='' 
    WHERE colSerno='$SERIALNUM'"; 

    mysqli_multi_query($con,$query); 

Пожалуйста, обратите внимание, где я объявил colHistory как „“, прежде чем вставить данные из формы. Я не уверен, что я делаю это правильно с этой стороны. Есть что-то, что мне не хватает?

* Edit:

Я уже пытался выполнения запросов по одному, как:

mysqli_query($con,"INSERT INTO tbInventory SET colHistory='$HISTORY' "); 
mysqli_query($con,"UPDATE tbInventory SET 
... 
... 

colHistory='' 
WHERE colSerno='$SERIALNUM'"; 

Но это, кажется, не работает, либо, все это игнорируется.

(** У меня есть сценарий ниже блока кода выше, где я мог бы напечатать результаты уже есть, и он мчит)

+0

Почему не только mysqli_query по одному? Вам не нужно использовать его, пока у вас нет другого выбора, или у него есть некоторые преимущества. – SIDU

+0

Я пробовал использовать это, но блок кода, похоже, игнорирует его, как и то, что он делает, используя вышеперечисленный блок с несколькими запросами. –

+0

Ahh. Ваш первый SQL недействителен: вставьте в значения tbInventory (colHistory) ('$ HISTORY') - пожалуйста, проверьте руководство по вставке MySQL. – SIDU

ответ

2

Ну что я могу сказать вам, почему ваш первый запрос сломан. INSERT INTO tbInventory SET colHistory = '$ HISTORY'

Этот запрос использует синтаксис UPDATE, но вы говорите процессору запросов, ожидая синтаксиса INSERT INTO. Таким образом, запрос не может выполнить.

Решите, нужно ли ОБНОВИТЬ существующую запись или ВСТАВИТЬ новую и изменить свой запрос, чтобы это отразить. (Изменить INSERT INTO для ОБНОВЛЕНИЯ или изменения «Установить colHistory = '$ History» на «Значения (« $ History »,« col2Val »и т. Д.»)

Что касается вашего второго запроса, выглядит синтаксис хорошо, из того, что вы показали, но так как вы не опубликовали весь запрос, трудно сказать, что там происходит. Если вы можете показать больше этого запроса, я могу обновить этот ответ.

Вот хороший вопрос SO о вставках против обновлений.

What are differences between INSERT and UPDATE in MySQL?

+0

У него нет отчетов об ошибках – Drew

+0

Я пытаюсь сделать INSERT или добавить все, что пользователь вводит в $ HISTORY в записи, которая в настоящее время находится на colhistory; Т.е .: Текущие данные о colHistory: пользователь вводит «B» на $ ИСТОРИЮ, синтаксис должен добавить «B» на «A», что в настоящее время на запись, или «AB»; а затем используйте функцию UPDATE для второго запроса. –

+0

Где есть инструкция 'WHERE' для' INSERT' stmts в руководстве sql? Вот [Страница] (http://dev.mysql.com/doc/refman/5.7/en/insert.html) – Drew

0

я в конечном итоге сбросив метод мульти-запросов, и я получил мои предполагаемые результаты по каким-то cheati ng:

Я назначил старые данные или данные, которые в настоящее время находятся в ячейке colHistory, отображает его, но я отключил текстовое поле. Затем я создал еще одно скрытое текстовое поле в скрипте со старыми данными в нем, а затем спрятал его в представлении пользователей.

Затем я объединил оба текстовых поля с новым, который я создал, который пользователь может изменить, подражая желаемым результатам.

Смежные вопросы