Php insert в разные таблицы

как вставить данные в 2 разные таблицы (php mysql)

BOOKS_in_ID — это первичный ключ, и мне нужно, чтобы BOOKS_in_ID автоматически вставлялся в BOOKS_IN_DETAIL.
Здесь можно ли вставить записи в 2 таблицы, используя один запрос?

Решение

Вам нужно вызвать соответствующий метод, чтобы получить последний вставленный идентификатор.

Предполагая, что вы используете PDO , вам нужно вызвать метод lastInsertId. $books_in_id = $pdo->lastInsertId();

Если вы используете mysqli_* расширение это $books_in_id = $mysqli->insert_id;

РЕДАКТИРОВАТЬ: если вы используете mysql_* версия (которая устарела), сначала обновите до mysqli_ *, либо установите флажок документация

Другие решения

Вам еще нужно два INSERT заявления, но похоже, что вы хотите получить IDENTITY из первой вставки и использовать его во второй, в этом случае вы можете посмотреть в OUTPUT или же OUTPUT INTO : http://msdn.microsoft.com/en-us/library/ms177564.aspx

Вы также можете использовать LastInsertId() для PDO.

$sql = "INSERT INTO city (`city`) VALUES ('Paris') ON DUPLICATE KEY UPDATE `city` = 'Paris"; $dbh->query($sql); echo $dbh->lastInsertId(); 

Или получите последний идентификатор вставки в MySQL:

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)"; $mysqli->query($query); printf ("New Record has id %d.\n", $mysqli->insert_id); 

Вы должны придерживаться MySQL? Потому что, если вы можете использовать mysqli, вы можете использовать multi_query (), который позволяет вам выполнять несколько запросов одновременно.
Ссылка на сайт : http://php.net/manual/en/mysqli.quickstart.multiple-statement.php

Нет, это невозможно только с одним INSERT запрос.

Вы можете следовать этим шагам

  1. Написать два разных запроса и выполнить их
  2. Создать хранимую процедуру, которая выполняет два запроса INSERT

Для первого пункта вы можете использовать LAST_INSERT_ID() функция для добавления передней клавиши

Источник

как вставить данные в 2 разные таблицы (php mysql)

BOOKS_in_ID — это первичный ключ, и мне нужно, чтобы BOOKS_in_ID автоматически вставлялся в BOOKS_IN_DETAIL.
Здесь можно ли вставить записи в 2 таблицы, используя один запрос?

Решение

Вам нужно вызвать соответствующий метод, чтобы получить последний вставленный идентификатор.

Предполагая, что вы используете PDO , вам нужно вызвать метод lastInsertId. $books_in_id = $pdo->lastInsertId();

Если вы используете mysqli_* расширение это $books_in_id = $mysqli->insert_id;

РЕДАКТИРОВАТЬ: если вы используете mysql_* версия (которая устарела), сначала обновите до mysqli_ *, либо установите флажок документация

Другие решения

Вам еще нужно два INSERT заявления, но похоже, что вы хотите получить IDENTITY из первой вставки и использовать его во второй, в этом случае вы можете посмотреть в OUTPUT или же OUTPUT INTO : http://msdn.microsoft.com/en-us/library/ms177564.aspx

Вы также можете использовать LastInsertId() для PDO.

$sql = "INSERT INTO city (`city`) VALUES ('Paris') ON DUPLICATE KEY UPDATE `city` = 'Paris"; $dbh->query($sql); echo $dbh->lastInsertId(); 

Или получите последний идентификатор вставки в MySQL:

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)"; $mysqli->query($query); printf ("New Record has id %d.\n", $mysqli->insert_id); 

Вы должны придерживаться MySQL? Потому что, если вы можете использовать mysqli, вы можете использовать multi_query (), который позволяет вам выполнять несколько запросов одновременно.
Ссылка на сайт : http://php.net/manual/en/mysqli.quickstart.multiple-statement.php

Нет, это невозможно только с одним INSERT запрос.

Вы можете следовать этим шагам

  1. Написать два разных запроса и выполнить их
  2. Создать хранимую процедуру, которая выполняет два запроса INSERT

Для первого пункта вы можете использовать LAST_INSERT_ID() функция для добавления передней клавиши

Источник

Внесение данных в две связанные таблицы MySQL

Друзья, подскажите пожалуйста! Я совсем начинающий в БД и web программировании, не могу никак разобраться. Есть две таблицы, связанные внешним ключем (приложение). Как сделать нужную выборку из них я понимаю а вот как внести в них данные, какой алгоритм? Скажем у нас появился еще один покупатель, мы его внесли в таблицу/поле customers.customer_name; customer_id получил AUTO_INC. А как внести данные в таблицу заказов orders — customer_id по идее нужно передать из первой таблицы чтобы обеспечить связь? А для чего тогда нужен внешний ключ, если связь определяют условия запросов? Не понимаю, помогите пожалуйста разобраться!

Перемещение данных из двух связанных таблиц в другие две связанные таблицы.
Здравствуйте! Возникла такая проблема! Есть две связанные таблицы и ещё две такие же связанные.

Ввод данных в две таблицы MySQL с одной страницы
Здравствуйте! Имеются две таблицы Mytable (id;name;text) и mytable2 (id;surname;text2) В первую.

Insert Into в две связанные таблицы
Имеется бд с тремя связанными таблицами. Один ко многим и один к одному. OleDbConnection conn =.

Как отобразить две связанные таблицы?
Только начал изучать ASP.NET MVC и не могу нигде найти информацию как в одном представлении.

Внешний ключ помогает сделать данные целыми. Чтобы не получилось, что в orders есть ID не существующего клиента. Плюс ускоряет выборку, плюс во многих фреймворках, таких как Yii2, есть автоматический механизм связей и вам многие запросы даже не придется писать, а использовать геттеры для этого.

Вам нужно сначала создать покупателя, получить ID вставленной записи и добавить запись в orders

Чтобы вставить данные во вторую таблицу, вам необходимо знать идентификатор нового покупателя из первой таблицы. Для этого, после внесения в первую таблицу нового покупателя, получите его идентификатор и используйте этот идентификатор при вставке данных во вторую таблицу.
Связи не сделают за вас работу. Связи нужны для того чтобы вы не испортили данные.

Также такой момент, если вы например захотите удалить пользователя и если у вас DELETE CASCADE во внешнем ключе, то вместе с пользователем будут удалены все его заказы, а если DELETE RESTRICT — то вы не сможете удалить пользователя, пока у него есть заказы. Вот так и получается целостность

Со связями относительно понял, что они за меня не будут работать. они нужны для обеспечения целостности данных.
Далее мне не понятно- допустим у нас процедура регистрации пользователя и процедура заказа две разные операции. Скажем пользователь зарегистрировался а покупки начал совершать через какое-то время. Соответственно логично получить id пользователя в случае совершения покупки и записать его в таблицу заказов? Какая конструкция запроса будет?

Добавлено через 9 минут
Что-то вроде INSERT INTO orders( customer_id) SELECT customer_id FROM customers WHERE
customers.customer_name = «n»

Добавлено через 3 часа 1 минуту
Друзья, еще назрел вопрос в этой же области. Например есть блог- т.е. запись и комментарии к этой записи. Записи хранятся в одной таблице БД, коменты в другой, связаны по внешнему ключу. Записи из базы выводим при помощи функции mysql_fetch_array и цикла. А как мы сопоставляем id записи и id заметки? По идее нужно выводить id записи в переменные и подставлять их в SQL запрос. Не соображу как будут попадать id записи в переменные запроса. Помогите пожалуйста!

Добавлено через 11 минут
А можно наверное сделать ссылку на комментарии с переменной (переменная- GET запрос в ссылке), где переменная — id записи. GET будет отдавать запросу соответствующий Id записи. И эта ссылка на каждой записи будет выводить соответствующие ей комментарии. Ну а запрос будет такой SELECT * FROM comments WHERE notes.id = comments.id Верно?

Источник

Внесение данных в две связанные таблицы MySQL

Друзья, подскажите пожалуйста! Я совсем начинающий в БД и web программировании, не могу никак разобраться. Есть две таблицы, связанные внешним ключем (приложение). Как сделать нужную выборку из них я понимаю а вот как внести в них данные, какой алгоритм? Скажем у нас появился еще один покупатель, мы его внесли в таблицу/поле customers.customer_name; customer_id получил AUTO_INC. А как внести данные в таблицу заказов orders — customer_id по идее нужно передать из первой таблицы чтобы обеспечить связь? А для чего тогда нужен внешний ключ, если связь определяют условия запросов? Не понимаю, помогите пожалуйста разобраться!

Перемещение данных из двух связанных таблиц в другие две связанные таблицы.
Здравствуйте! Возникла такая проблема! Есть две связанные таблицы и ещё две такие же связанные.

Ввод данных в две таблицы MySQL с одной страницы
Здравствуйте! Имеются две таблицы Mytable (id;name;text) и mytable2 (id;surname;text2) В первую.

Insert Into в две связанные таблицы
Имеется бд с тремя связанными таблицами. Один ко многим и один к одному. OleDbConnection conn =.

Как отобразить две связанные таблицы?
Только начал изучать ASP.NET MVC и не могу нигде найти информацию как в одном представлении.

Внешний ключ помогает сделать данные целыми. Чтобы не получилось, что в orders есть ID не существующего клиента. Плюс ускоряет выборку, плюс во многих фреймворках, таких как Yii2, есть автоматический механизм связей и вам многие запросы даже не придется писать, а использовать геттеры для этого.

Вам нужно сначала создать покупателя, получить ID вставленной записи и добавить запись в orders

Чтобы вставить данные во вторую таблицу, вам необходимо знать идентификатор нового покупателя из первой таблицы. Для этого, после внесения в первую таблицу нового покупателя, получите его идентификатор и используйте этот идентификатор при вставке данных во вторую таблицу.
Связи не сделают за вас работу. Связи нужны для того чтобы вы не испортили данные.

Также такой момент, если вы например захотите удалить пользователя и если у вас DELETE CASCADE во внешнем ключе, то вместе с пользователем будут удалены все его заказы, а если DELETE RESTRICT — то вы не сможете удалить пользователя, пока у него есть заказы. Вот так и получается целостность

Со связями относительно понял, что они за меня не будут работать. они нужны для обеспечения целостности данных.
Далее мне не понятно- допустим у нас процедура регистрации пользователя и процедура заказа две разные операции. Скажем пользователь зарегистрировался а покупки начал совершать через какое-то время. Соответственно логично получить id пользователя в случае совершения покупки и записать его в таблицу заказов? Какая конструкция запроса будет?

Добавлено через 9 минут
Что-то вроде INSERT INTO orders( customer_id) SELECT customer_id FROM customers WHERE
customers.customer_name = «n»

Добавлено через 3 часа 1 минуту
Друзья, еще назрел вопрос в этой же области. Например есть блог- т.е. запись и комментарии к этой записи. Записи хранятся в одной таблице БД, коменты в другой, связаны по внешнему ключу. Записи из базы выводим при помощи функции mysql_fetch_array и цикла. А как мы сопоставляем id записи и id заметки? По идее нужно выводить id записи в переменные и подставлять их в SQL запрос. Не соображу как будут попадать id записи в переменные запроса. Помогите пожалуйста!

Добавлено через 11 минут
А можно наверное сделать ссылку на комментарии с переменной (переменная- GET запрос в ссылке), где переменная — id записи. GET будет отдавать запросу соответствующий Id записи. И эта ссылка на каждой записи будет выводить соответствующие ей комментарии. Ну а запрос будет такой SELECT * FROM comments WHERE notes.id = comments.id Верно?

Источник

Читайте также:  Title here
Оцените статью