Возможно ли это, если я хочу вставить некоторые данные в две таблицы одновременно? Но в 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);
Простой ответ: нет – нет возможности вставлять данные в две таблицы в одну команду. Довольно уверен, что ваш второй патч сценария – это не то, что вы ищете.
Обычно такие проблемы решаются одним из этих методов в зависимости от вашей конкретной потребности:
Надеюсь это поможет
// если вы хотите вставить то же самое, что и первая таблица
$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); ?>
// в этом примере показано, как вставлять данные из формы в таблицы с несколькими значениями, я не показал никаких мер безопасности