Как вставить одинаковые данные в две таблицы в MySQL - PullRequest
0 голосов
/ 23 августа 2010

Возможно ли это, если я хочу вставить некоторые данные в две таблицы одновременно? Но на 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) в table2? Я нашел какой-нибудь скрипт, могу ли я использовать это?

$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);

Ответы [ 5 ]

4 голосов
/ 23 августа 2010

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

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

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

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

1 голос
/ 06 апреля 2011

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

$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);

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

  $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"")
0 голосов
/ 27 июня 2011
<?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'>";
    }
}
?>

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

0 голосов
/ 27 марта 2011

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

<?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);

?>

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

0 голосов
/ 23 августа 2010

это нельзя сделать в одном акте,

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

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