Добавьте один и тот же ключ в обе таблицы

#mysql

#mysql

Вопрос:

Я новичок в MySQL. Не знаком с внешним ключом

У меня есть 2 таблицы: sendm и recievem. Следующий запрос вставляет данные в sendm. У него есть идентификатор в качестве первичного ключа с автоинкрементом

 INSERT INTO `sendm`(`sendname`, `recievename`, `subject`, `body`, `mdate`, `mtime`) VALUES ('$sendname','$recievename','$subject','$body','$mate','$mtime')
 

Что я хочу, так это вставить один и тот же идентификатор в таблицу recievem одновременно..
Таким образом, имея одинаковый идентификатор в обеих таблицах для одного и того же сообщения.

 INSERT INTO `recievem`(`sendname`, `recievename`, `subject`, `body`) VALUES ('$sendname','$recievename','$subject','$body')
 

Как я должен это сделать? Пожалуйста, помогите

Ниже приведен PHP-код, который необходимо изменить

  mysql_query("INSERT INTO `sendm`(`sendname`, `recievename`, `subject`, `body`, `mdate`, `mtime`) VALUES ('$sendname','$recievename','$subject','$body','$msgdate','$msgtime')");
 mysql_query("INSERT INTO `recievem`(`sendname`, `recievename`, `subject`, `body`) VALUES ('$sendname','$recievename','$subject','$body')");
 

Ответ №1:

Отредактировано в соответствии с новыми спецификациями:

 mysql_query("INSERT INTO `sendm`(`sendname`, `recievename`, `subject`, `body`, `mdate`, `mtime`) VALUES ('$sendname','$recievename','$subject','$body','$msgdate','$msgtime')");
$new_id = mysql_insert_id();
mysql_query("INSERT INTO `recievem`(`YOUR_FIELD_ID`, `sendname`, `recievename`, `subject`, `body`) VALUES ($new_id,'$sendname','$recievename','$subject','$body')");
 

Просто нужно изменить YOUR_FIELD_ID с именем поля id таблицы recievem

ВАЖНО:

Расширения Mysql устарели и больше не будут поддерживаться в следующих версиях PHP. Взгляните на Mysqli или PDO

Комментарии:

1. Да, я использую PHP .. Позвольте мне отредактировать вопрос и вставить его вместе с кодом PHP

2. Также убедитесь, что нет триггеров, или что последний идентификатор будет неправильным, или поместите все это в транзакцию.

3. Хорошо, хорошо, позвольте мне попробовать .. 🙂 Должен ли идентификатор в recievem быть основным? или просто оставьте все как есть

4. Да, это исправлено.. Большое спасибо… И о предоставленной вами информации о PHP — значит, к следующему 1 или 2 году эти коды не будут работать??

5. В следующих версиях, если однажды вы захотите обновить свою версию php до чего-то большего, чем 5.6, вам нужно будет изменить ВСЕ ваши функции mysql_ , поэтому лучше, если вы разрабатываете что-то новое, по крайней мере, для использования функций mysqli_ (синтаксис похож)