как вставить данные в две таблицы одновременно? - PullRequest
1 голос
/ 30 сентября 2010

У меня есть эта проблема в моей системе, мне нужно зарегистрировать пациента в системе, номер пациента используется для резервирования в больнице.проблема, которую я получил, заключается в том, что когда пациент регистрируется в системе, резервирование выполняется одновременно, мне нужно обновить две таблицы, таблицу пациентов и таблицу резервирования, мне нужно взять reference_number из таблицы пациентов и ввести его в резервНомер table.reference должен быть взят из базы данных, и новый должен быть на один шаг больше, чем старый.как это сделать ребята?Я запутался в этом.: (

Я разрабатываю систему, используя codeigniter, php и mysql

regards, Rangana

Ответы [ 4 ]

1 голос
/ 30 сентября 2010

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

В MySQL есть функция LAST_INSERT_ID () (см. http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id)

Вы должны быть в состоянии использовать это в хранимой процедуре для обновления второй таблицы идентификатором из первой.

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

1 голос
/ 30 сентября 2010

Если исходить из расплывчатой ​​информации, вы можете сделать это следующим образом.

$this->db->insert('patients_records_tbl', $data);
$last_id = $this->db->insert_id();
$this->db->insert('other_tbl', array('patient_id' => $last_id));

Надеюсь, это смутно для вас.

1 голос
/ 30 сентября 2010

Я думаю, что вы могли бы легко сделать это с помощью двух операторов вставки сразу друг за другом и использовать mysql_insert_id для получения идентификатора предыдущего запроса. Но это может не сработать, если ваши таблицы определены по-другому:

mysql_query('INSERT INTO patients [...]');
$patientId = mysql_insert_id();
mysql_query('INSERT INTO reservations [...]');
0 голосов
/ 30 сентября 2010

Томасмальт, JonRed и Джеймс Норман, ребята, спасибо за большую помощь

Это код

$this->db->insert('patient',$data);

$sql = "SELECT LAST_INSERT_ID()";
$query = mysql_query($sql);
  if ($query) {
    $row = mysql_fetch_row($query);
    $lastID = $row[0];
 }

$this->db->insert('visit',$visit_data);

$ data и $ visit_data - это два массива, содержащие данные вставки, $ visit_data содержит $ lastID

надеюсь, что вы, ребята, тоже сможете использовать это в будущем:)

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