我的系统中存在此问题,我需要将患者注册到系统,患者reference_number用于在医院进行预约。我得到的问题是,当患者在系统中注册同时进行预约时,我需要更新两个表,患者表和预约表,我必须从患者表中取出reference_number并将其输入预约必须从数据库中获取table.reference数字,新的数字应该是旧数据库的一个增量。怎么做这个家伙?我对此感到困惑。 :(
我正在使用codeigniter,php和mysql
开发系统的问候, 兰加纳
答案 0 :(得分:1)
我认为您可以轻松地使用两个插入语句来执行此操作并使用mysql_insert_id来获取上一个查询的ID。但是,如果您的表的定义不同,这可能对您不起作用:
mysql_query('INSERT INTO patients [...]');
$patientId = mysql_insert_id();
mysql_query('INSERT INTO reservations [...]');
答案 1 :(得分:1)
今天早上我的时间有点紧张,请原谅我,如果这不是一个更全面的解释。我对codeigniter也一无所知,所以希望它确实支持存储过程。
在MySQL中有一个LAST_INSERT_ID()函数(参见http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id)
您应该能够在存储过程中使用它来使用第一个表中的标识更新第二个表。
希望有所帮助。
答案 2 :(得分:1)
根据模糊的信息,您可以像下面这样做。
$this->db->insert('patients_records_tbl', $data);
$last_id = $this->db->insert_id();
$this->db->insert('other_tbl', array('patient_id' => $last_id));
我希望隐约适合你。
答案 3 :(得分:0)
这是代码
$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
希望你们将来也可以使用它:)