|
|
|
| Здравствуйте, у меня вот какая проблема: есть две таблицы со следующей структурой (колонками):
table1: id_user, user
table2: id_session, sid, id_user
Выполняются последовательно два запроса (в третьей колонке запроса 2 содержится не само значение, а описание того, что туда нужно вставить):
<?
$query1 = "INSERT INTO table1 VALUES (DEFAULT, '$user')";
mysql_query($query1);
$query2 = "INSERT INTO table2 VALUES (DEFAULT, {$SessionId}, 'id_user из таблицы 1, который соответствует только что зарегистрированному пользователю')";
mysql_query($query2);
?>
|
Как заполнить 3 столбец при выполнении второго запроса?
Заранее спасибо за ответ | |
|
|
|
|
|
|
|
для: antf
(16.05.2005 в 09:29)
| |
<?
$query1 = "INSERT INTO table1 VALUES (DEFAULT, '$user')";
mysql_query($query1);
$id_user=mysql_insert_id(); //первичный ключ добавленной записи
$query2 = "INSERT INTO table2 VALUES (DEFAULT, {$SessionId}, $id_user);
mysql_query($query2);
?>
|
mysql_insert_id относится к тому запросу, после которого она находится. Обрати на это внимание. | |
|
|
|
|
|
|
|
для: Loki
(16.05.2005 в 10:16)
| | Добавлю ещё одно решение, которое решает задачу средствами MySQL
<?
$query1 = "INSERT INTO table1 VALUES (DEFAULT, '$user')";
mysql_query($query1);
$query2 = "INSERT INTO table2 VALUES (DEFAULT, {$SessionId}, LAST_INSERT_ID())";
mysql_query($query2);
?>
|
Здесь применяется встроенная функция MySQL - LAST_INSERT_ID(), которая аналогична по действию PHP-аналогу mysql_insert_id(). | |
|
|
|