执行2个mysql查询,第二个基于第一个查询


Execute 2 mysql Queries with the second being based on the first

嗨,我有两个表需要插入。

问题是第一个表有一个自动生成的ID字段,我在第二个查询

中需要这个字段

成员(表1):

| | id名称| eyeColour |

assigndmembers(表2):

| | id memberID | groupID |

我目前正在使用以下内容:

$addMember = $dbHandle->prepare("INSERT INTO members(name,date)     VALUES(?,?)");
$addMember->bind_param("ss",$name,$eyeColour);
$addMember->execute();
$getID = $dbHandle->("SELECT id from members where name = ? LIMIT 1");
$getID->bind_param("s",$name);
$getID->execute();
$getID->bind_param($MID);
$assignMember= $dbHandle->prepare("INSERT INTO assignedMembers memberID,groupID) VALUES(?,4)");
$assignMember->bind_param("i",$MID);
$assignMember->execute();

在$assignMember->bind_param();排除故障后,我注意到$MID变量为空。

似乎从第一个INSERT的行不添加之前的下一个语句的执行是否有一种方法来强制这一点?

感谢您花时间阅读这篇文章,任何帮助都将非常感谢

mysqli:$insert_id是你正在寻找的。

$addMember = $dbHandle->prepare("INSERT INTO members(name,date)     VALUES(?,?)");
$addMember->bind_param("ss",$name,$eyeColour);
$addMember->execute();
$id = $dbHandle->insert_id;

我觉得你应该用

$getID->bind_result($MID);
$getID->fetch();
不是

$getID->bind_param($MID);

由于使用'…->bind_param'我假设,你使用MySQLi。查看:mysqli_insert_id -获取上次查询中生成的ID