【发布时间】:2015-01-12 21:02:41
【问题描述】:
已编辑!
一直在查看有类似问题的帖子,但似乎找不到适合我情况的答案 - 希望你们能提供帮助。
更新:已根据输入更新了我的代码 - 谢谢!我看到了进步,但是:
现在,只有在while-loop 中调用 INSERT INTO 时,我才会在下面收到错误 Call to a member function bind_param() on a non-object。
$stmtTjekFindesOevelse、$stmtFindOevelsesID 和 $stmtGemNyVaegtOgRepsSet 自己工作正常(当在代码中手动输入变量时)只有在 while 循环中 $stmtGemNyVaegtOgRepsSet 失败并显示上述错误消息。
$stmtFindOevelsesID 将始终返回一个整数(id)。如果没有这个id,会被if ($stmtTjekFindesOevelse->num_rows() > 0)发现,代码不会运行。
猜测 while 循环有问题 - 只是不知道在这种情况下使用哪种替代方案......
$navn = 'Brystpres';
$vaegt = 10;
$reps = 11;
$antalGangeUdfoert = 11;
global $mysqli;
$stmtTjekFindesOevelse = $mysqli->prepare("SELECT * FROM oevelser WHERE navn=?");
$stmtTjekFindesOevelse->bind_param("s", $navn);
$stmtTjekFindesOevelse->execute();
$stmtTjekFindesOevelse->store_result();
if ($stmtTjekFindesOevelse->num_rows() > 0)
{
$stmtFindOevelsesID = $mysqli->prepare("SELECT id FROM oevelser WHERE navn=?");
$stmtFindOevelsesID->bind_param("s", $navn);
$stmtFindOevelsesID->execute();
$stmtFindOevelsesID->bind_result($oevelsesID);
while ($stmtFindOevelsesID->fetch()) {
$stmtGemNyVaegtOgRepsSet = $mysqli->prepare("INSERT INTO vaegtogreps (oevelsesreference, vaegt, reps, antalgangeudfoert) VALUES (?, ?, ?, ?)");
$stmtGemNyVaegtOgRepsSet->bind_param("idii", $oevelsesID, $vaegt, $reps, $antalGangeUdfoert);
$stmtGemNyVaegtOgRepsSet->execute();
}
}
【问题讨论】: