Как вставить данные в две разные таблицы? - PullRequest
1 голос
/ 22 октября 2008

У меня есть форма, которая берет как пользовательские данные, так и загруженное ими изображение. Я хочу записать данные в пользовательскую таблицу и таблицу изображений, но я почти уверен, что это невозможно сделать с помощью двух отдельных операторов вставки. Любая помощь будет высоко ценится.

Ответы [ 3 ]

4 голосов
/ 22 октября 2008

Сначала необходимо вставить пользователя, затем выполнить «SELECT LAST_INSERT_ID ()», чтобы получить идентификатор пользователя. Затем вы можете вставить изображение в таблицу изображений с вновь созданным идентификатором пользователя. В PHP вы можете использовать mysql_insert_id () для получения нового идентификатора. Если вы используете mysql с InnoDB, вы также можете обернуть вставки в транзакцию , выдав BEGIN, затем INSERT, а затем COMMIT, если все успешно добавлено, или ROLLBACK в случае сбоя. 1005 *

0 голосов
/ 23 октября 2008
$rec = mysql_query("insert into userdet values("$id","$username",....)");
if($rec)
  mysql_query("insert into imag values("$id","$imgname",...)");
0 голосов
/ 22 октября 2008

Почему вы уверены, что это невозможно сделать? Ты это пробовал? Вы вставляете в пользовательскую таблицу, а затем вставляете в таблицу изображений ... никаких проблем.

Единственным предупреждением будет то, что вы должны обернуть вставки в транзакции, чтобы они действовали как одна вставка и успешно / неудачно выполнялись вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...