我对数据库有疑问,而且我正在使用有效的记录编号。
逻辑是这样的:我有一个表,假设它的名字是A,表A有4个字段,例如:uniqueID,typeofID,date和userID。
第一步:我(用户)使用条件uniqueID和typeofID对表A进行验证。如果行为true或uniqueID可用,则返回成功。
第二步:如果验证成功,那么用户可以将数据插入到新表中,假设表是B.在表B中,带有额外A.I(自动增量)的id。在表B中有4个字段:id,username,question1,question2。
问题是:我可以将表B id插入到字段userID表A中吗? 这样,当有人访问表A时,他会通过知道userID知道表A中的用户名是什么。
=============================================== ==========================
来自成员的解决方案,已经成功。 首先,我使用表中的唯一ID将数据插入表B,并在插入数据之后获取最后一个ID。
这是我的解决方案
$this->db->insert('tableB', $data);
$result = $this->db->insert_id();
$this->db->where('uniqueID', $data2['uniqueID']);
$result2 = $this->db->update('tableA', array('idfromtableB' => $result));
return $this->db->affected_rows();
但我在odbc中遇到了insert_id()错误。错误说: 遇到PHP错误
严重性:注意
消息:未定义属性:CI_DB_odbc_driver :: $ db
文件名:odbc / odbc_driver.php
行号:239
回溯:
<p style="margin-left:10px">
File: C:\xampp\htdocs\myproject\application\models\users_m.php
<br />
Line: 79
<br />
Function: insert_id
</p>
=============================================== ==========================
在此处找到解决方案:SQL Server last insert id return array in CodeIgniter
答案 0 :(得分:1)
插入表B后,使用$user_id = $this->db->insert_id()
获取最后一个插入ID(表B的ID),然后更新表A.所以你的代码看起来像
...
$this->db->insert('tableA',$data);
$last_rowID = $this->db->insert_id();
$this->db->insert('tableB',$dataB);
$user_id = $this->db->insert_id();
$this->db->where('tableA_ID',$last_rowID )->update('tableA',array('userID' => $user_id));
答案 1 :(得分:0)
是的,你可以,你只需要加入你的桌子:
例如:
public function get_info($id){
$this->db->select('*');
$this->db->from('tableA');
$this->db->join('tableB' ,tableA.id=tableB.id);
$this->db->where('tableA.id' , $id);
$query = $this->db->get();
return $query->result_array();
}
请修改它,以便适合您的代码。