您好我需要插入两张桌子。
问题是第一个表有一个自动生成的ID字段,我在第二个查询中需要这个字段
成员(表1):
assignedMembers(表2):
我目前正在使用以下内容:
$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中的行没有在执行下一个语句之前添加,是否有办法强制执行此操作?
感谢您抽出宝贵时间阅读本文,非常感谢任何帮助
答案 0 :(得分:2)
mysqli:$insert_id正是您要找的。 p>
$addMember = $dbHandle->prepare("INSERT INTO members(name,date) VALUES(?,?)");
$addMember->bind_param("ss",$name,$eyeColour);
$addMember->execute();
$id = $dbHandle->insert_id;
答案 1 :(得分:0)
我认为你应该使用
$getID->bind_result($MID);
$getID->fetch();
而不是
$getID->bind_param($MID);
答案 2 :(得分:0)
由于使用了' ...-> bind_param'我假设你使用MySQLi。 查看:mysqli_insert_id — Get the ID generated in the last query