我在重置指针方面遇到了一些困难。我想这样做是因为我将在同一脚本中使用同一查询两次。据我所知,我可以在循环获取数组后重置指针来做到这一点。如果有更好的方法来做到这一点,我很想听听。
无论如何,这就是我得到的。
$getEvent = $connection->prepare("SELECT * BLABLA FROM BLABLA");
$getEvent->bind_param("i", $eventID);
$getEvent->execute();
$getEvent->bind_result($eventMember, $eventStaff, $eventMemberID, $eventMemberSuper);
while($getEvent->fetch())
{
// Do stuff
}
// Then bunch of code, before finally another
//$getEvent->execute(); //Script doesn't work without this and next line
//$getEvent->bind_result($eventMember, $eventStaff, $eventMemberID, $eventMemberSuper);
while($getEvent->fetch())
{
// Do other stuff
}
我尝试过$getEvent->data_seek(0);
但没有运气。该脚本仅在我重新声明时才有效$getEvent->bind_result
。预先感谢您的回复。
这会给数据库服务器带来不必要的额外压力。不要倒回并重用结果集,而是首先将整个结果存储在数组中。然后,您可以在 PHP 应用程序代码中以不同的方式多次使用它。
Update修复了代码,因此它应该与 MySQLi 而不是 PDO 一起使用。另外,将结果放入关联数组中。
$results = array();
while($getEvent->fetch())
{
$results[] = array('eventMember'=>$eventMember, 'eventStaff'=>$eventStaff, 'eventMemberID'=>$eventMemberID, 'eventMemberSuper'=>$eventMemberSuper);
}
// Now use $results however you need to.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)