#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_ (синтаксис похож)