Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多个mysql\u插入\u id_Php_Mysql_Mysql Insert Id - Fatal编程技术网

Php 多个mysql\u插入\u id

Php 多个mysql\u插入\u id,php,mysql,mysql-insert-id,Php,Mysql,Mysql Insert Id,我有三张这样结构的桌子 员工>id主键,姓名 家庭>家庭id主键,id员工主键 父亲>父亲id PK,家庭id家庭PK,父亲姓名 我知道我可以使用mysql\u insert\u id或last\u insert\u id获取最后一个插入的id,我想获取id并将其插入到每个表中,如下所示: INSERT INTO employee VALUES('', '<value>') // // INSERT INTO family VALUES('', '".mysql_insert_id(

我有三张这样结构的桌子

员工>id主键,姓名 家庭>家庭id主键,id员工主键 父亲>父亲id PK,家庭id家庭PK,父亲姓名 我知道我可以使用mysql\u insert\u id或last\u insert\u id获取最后一个插入的id,我想获取id并将其插入到每个表中,如下所示:

INSERT INTO employee VALUES('', '<value>')
//
//
INSERT INTO family VALUES('', '".mysql_insert_id()."')
// id from employee PK
//
INSERT INTO father VALUES('', '".mysql_insert_id()"', '')
// id from family PK
我做的对吗?如果是,有没有更好的方法来做同样的事情


谢谢

是的,考虑到mysql的警告,这是正确的方法。但是你在第二和第三个例子中引用了一个整数值——这是个坏主意

这种方法的缺点是,即使没有对准备好的语句进行服务器端解析,也需要多次往返数据库发送查询、检索结果、发送插入id请求、检索插入id X 3,这可能是性能瓶颈


如果是这种情况,那么将其打包为Mysql函数将允许操作通过函数而不是过程作为对DBMS的单个调用进行竞争,因为前者可以返回插入id。

在新代码中,它们是。取而代之的是,看一看,然后使用or。我现在正在使用mysqli,但由于我仍在学习它,所以我使用了mysqli函数,我在这个问题上知道的最多,只是作为一个例子,谢谢你提醒我因此,在插入之前,我需要使用settype将值转换为字符串?否-表上的数据类型应该是整数-如果是char/varchar等,那么您将遇到重大性能问题,并且可能存在数据完整性问题。