执行 2 mysql 查询,第二个查询基于第一个
Execute 2 mysql Queries with the second being based on the first
您好,我有两个 table 需要插入。
问题是第一个 table 有一个自动生成的 ID 字段,我在第二个查询中需要这个字段
成员 (table1):
|id|名称|eyeColour|
assignedMembers (table 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 中的行有没有办法强制这样做?
感谢您花时间阅读本文post,如有任何帮助,我们将不胜感激
我认为你应该使用
$getID->bind_result($MID);
$getID->fetch();
而不是
$getID->bind_param($MID);
mysqli:$insert_id 就是您要找的。
$addMember = $dbHandle->prepare("INSERT INTO members(name,date) VALUES(?,?)");
$addMember->bind_param("ss",$name,$eyeColour);
$addMember->execute();
$id = $dbHandle->insert_id;
由于使用了“...->bind_param”,我假设您使用的是 MySQLi。
查看:mysqli_insert_id — Get the ID generated in the last query
您好,我有两个 table 需要插入。
问题是第一个 table 有一个自动生成的 ID 字段,我在第二个查询中需要这个字段
成员 (table1):
|id|名称|eyeColour|
assignedMembers (table 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 中的行有没有办法强制这样做?
感谢您花时间阅读本文post,如有任何帮助,我们将不胜感激
我认为你应该使用
$getID->bind_result($MID);
$getID->fetch();
而不是
$getID->bind_param($MID);
mysqli:$insert_id 就是您要找的。
$addMember = $dbHandle->prepare("INSERT INTO members(name,date) VALUES(?,?)");
$addMember->bind_param("ss",$name,$eyeColour);
$addMember->execute();
$id = $dbHandle->insert_id;
由于使用了“...->bind_param”,我假设您使用的是 MySQLi。 查看:mysqli_insert_id — Get the ID generated in the last query