2013-12-15 3 views
0

Я пытаюсь вставить значения в базу данных, но одно из значений является первичным ключом из другой таблицы. У меня есть две таблицы, адрес и Пользователь. У пользователя есть первичный ключ адреса как внешний ключ. Я пытаюсь вставить значения, которые клиент вставляет в базу данных, но пользователь не получает адрес (первичный ключ адреса). Основная цель этого заключается в том, что я могу иметь адрес как отдельную таблицу и вытаскивать адрес, когда это необходимо, в таблицу User. Я использую Dreamweaver и phpmyadmin для этого.Можно ли использовать INSERT INTO, а затем SELECT позже?

Я думал, может сделать:

$insertSQL = "INSERT INTO User (name, email, addressid) VALUES ('%".GetSQLValueString($_POST['Name'], "text"). "%', '%".GetSQLValueString($_POST['Email'], "text")."%' SELECT addressid FROM address"; 

Но это дает мне ошибку

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't'%', '%'t'%' SELECT addressid FROM address' at line 1 

Если кто-то может помочь, пожалуйста, что было бы здорово. Извините, мне никогда не учили SQL и PHP, поэтому я не знаю много кода.

+0

как о оборачивать их в хранимой процедуре? –

+0

есть 'insert into ... select from', но вы не можете использовать раздел' values ​​() 'в таком запросе. значения предоставляются исключительно 'select from'. вам придется запускать два отдельных запроса. один для вставки ваших фиксированных значений, затем еще один для вставки/выбора –

+0

@ 今 草 顿 웃, как я могу это сделать? – GolfinGamer

ответ

0

Вы должны сделать 2 запроса. Если вы используете инкрементный первичный элемент, вы можете поймать последний вставленный идентификатор, чтобы построить запрос SELECT.

Пример: http://php.net/mysql_insert_id

+0

так я использую 'INSERT INTO' для этого? – GolfinGamer

+0

или 'UPDATE', чтобы обновить таблицу User с новым значением? – GolfinGamer

+0

Сначала вы вставляете адрес, затем получаете последний вставленный идентификатор и вставляете пользователя. –

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