Как вставить те же данные в две таблицы в mysql

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

 $sql = "INSERT INTO table1(model, serial, date, time, qty) VALUES ('star', '0001', '2010-08-23', '13:49:02', '10')"; $sql2 = "INSERT INTO table2(model, date, qty) VALUES ('star', '2010-008-23', '10')"; 

Могу ли я вставить COUNT(model) в таблицу2? Я нашел несколько сценариев, могу ли я использовать это?

 $sql = "INSERT INTO table1(model, serial, date, time, qty) VALUES ('star', '0001', '2010-08-23', '13:49:02', '10')"; $result = mysql_query($sql,$conn); if(isset($model)) { $model = mysql_insert_id($conn); $sql2 = "INSERT INTO table2(model, date, qty) VALUES ('star', '2010-008-23', '10')"; $result = mysql_query($sql,$conn); } mysql_free_result($result); 

Related of "Как вставить те же данные в две таблицы в mysql"

Простой ответ: нет – нет возможности вставлять данные в две таблицы в одну команду. Довольно уверен, что ваш второй патч сценария – это не то, что вы ищете.

Обычно такие проблемы решаются одним из этих методов в зависимости от вашей конкретной потребности:

  • Создание представления для представления второй таблицы
  • Создание триггера для вставки в таблицу2
  • Использование транзакций для обеспечения того, чтобы обе вставки были успешными или оба были откатны.
  • Создайте хранимую процедуру, которая выполняет обе вставки.

Надеюсь это поможет

// если вы хотите вставить то же самое, что и первая таблица

 $qry = "INSERT INTO table (one, two, three) VALUES('$one','$two','$three')"; $result = @mysql_query($qry); $qry2 = "INSERT INTO table2 (one,two, three) VVALUES('$one','$two','$three')"; $result = @mysql_query($qry2); 

// или если вы хотите вставить определенные части таблицы 1

  $qry = "INSERT INTO table (one, two, three) VALUES('$one','$two','$three')"; $result = @mysql_query($qry); $qry2 = "INSERT INTO table2 (two) VALUES('$two')"; $result = @mysql_query($qry2); 

// Я знаю, что это выглядит слишком хорошо, чтобы быть прав, но он работает, и вы можете продолжать добавлять запрос просто изменить

  "$qry"-number and number in @mysql_query($qry"") 

его нельзя сделать в одном статусе,

если таблицы создаются движком innodb , вы можете использовать транзакцию , чтобы данные вставлялись в 2 таблицы

 <?php if(isset($_POST['register'])) { $username = $_POST['username']; $password = $_POST['password']; $email = $_POST['email']; $website = $_POST['website']; if($username == NULL OR $password == NULL OR $email == NULL OR $website == NULL) { $final_report2.= "ALERT - Please complete all fields!"; } else { $create_chat_user = mysql_query("INSERT INTO `chat_members` (`id` , `name` , `pass`) VALUES('' , '$username' , '$password')"); $create_member = mysql_query("INSERT INTO `members` (`id`,`username`, `password`, `email`, `website`) VALUES ('','$username','$password','$email','$website')"); $final_report2.="<meta http-equiv='Refresh' content='0; URL=login.php'>"; } } ?> 

вы можете использовать что-то вроде этого. оно работает.

В общем, вот как вы отправляете данные из одной формы на две таблицы:

 <?php $dbhost="server_name"; $dbuser="database_user_name"; $dbpass="database_password"; $dbname="database_name"; $con=mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to the database:' . mysql_error()); $mysql_select_db($dbname, $con); $sql="INSERT INTO table1 (table1id, columnA, columnB) VALUES (' ', '$_POST[columnA value]','$_POST[columnB value]')"; mysql_query($sql); $lastid=mysql_insert_id(); $sql2=INSERT INTO table2 (table1id, table2id, columnA, columnB) VALUES ($lastid, ' ', '$_POST[columnA value]','$_POST[columnB value]')"; //tableid1 & tableid2 are auto-incrementing primary keys mysql_query($sql2); mysql_close($con); ?> 

// в этом примере показано, как вставлять данные из формы в таблицы с несколькими значениями, я не показал никаких мер безопасности