我有一个类(class)项目,使用 mysql 和 php 构建图书馆管理系统。
我的图书馆中有 3 项内容:书籍、音频和视频。每一种都有不同的属性和一个项目 ID。
表格:
ITEM(item_id A.INCREMENT, TYPE)
BOOK(b_id,name,author etc.)
VIDEO(v_id, ETC.)
AUDIO(a_id, ETC.)
但是,我必须使用3条sql语句将项目添加到特定表和项目表中。有更好的方法吗?实际上我不需要 ITEM
类,我使用它只是为了更通用。没有它会很糟糕吗?
这就是用途。
$sql="INSERT INTO ITEM values(NULL,'BOOK') ";
$query = $this->db->query($sql);
$sql="SELECT ID as id FROM ITEM WHERE ID=last_insert_id()";
$query=$this->db->query($sql)->row_array();
$name = $book_name;
$sql = "INSERT INTO BOOKS values ('".$query['id']."','".$name."','".$author."','".$title."','".$year."','".$price."','AVAIBLE',NOW(),'0')";
$query = $this->db->query($sql);
最佳答案
INSERT INTO ITEM (`type`) values ('BOOK');
INSERT INTO BOOKS (b_id, name, author)
select last_insert_id(), '$name', '$author';
顺便说一句,如果您使用准备语句,您的查询将更具可读性并可防止 SQL 注入(inject)。
关于php - 有没有更好的方法来插入记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36985214/