PHP MYSQL - вставить новую запись, но требует столбца из оператора выбора в другой таблице - не удается в php - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь добавить запись в таблицу через форму php.Одно из обязательных полей необходимо выбрать из другой таблицы и добавить в оператор вставки перед выполнением.

Вот код mysql, он прекрасно работает в Workbench, получив часть «Select» и включив в нее«Вставить» все одновременно.Моя форма php возвращает ошибку о том, что значение 'serial' равно нулю, поэтому 'ADD' завершается неудачно.

Вот рабочий mysql -

INSERT INTO table_1 
(type, version, regn, comments, serial)
VALUES ('797', '109F','KILO','new entry', (SELECT serial  
FROM table_2 WHERE consno = '999999'))

Как человек, который очень плохо знаком с этим, я вспоминаю, как читал что-то вроде нескольких утверждений, которые невозможно изнутри php, любые советы или указанияо том, как я могу заставить эту 'Вставку' работать в php, будет высоко ценится?

Спасибо

1 Ответ

0 голосов
/ 09 июня 2018

Вы делаете это неправильно.Вам нужен шаблон INSERT ... SELECT.

 INSERT INTO table_1 
             (type, version, regn, comments, serial)
 SELECT '797', '109F','KILO','new entry', serial  
   FROM table_2 
  WHERE consno = '999999'

Вы пишете оператор SELECT, соответствующий столбцам, которые вы хотите вставить.Затем вы помещаете свое заявление INSERT прямо перед ним.Хитрость здесь в том, чтобы указать константы, когда они вам нужны, и столбцы из таблицы, где они нужны.

...