【发布时间】:2017-12-06 22:44:11
【问题描述】:
我无法在foreach 循环之外访问$result。当我在循环内使用dump($results); 时,我得到了结果,但是当我在循环外使用dump($results); 时,结果为空。
$results = array();
foreach ($menu as $menus) {
$mid = $menus->getId();
$em = $this->getDoctrine()->getManager();
$connection = $em->getConnection();
$statement = $connection->prepare("SELECT s.subtitle,m.* FROM submenu as s,menu as m where s.menu_id=m.id and m.id=:data");
$statement->bindValue('data', $mid);
$statement->execute();
$results = $statement->fetchAll();
}
dump($results)
【问题讨论】:
-
你确定
$menu里面有什么吗? -
看来
foreach中的变量可能是倒退的。$menus这个名字听起来像一个数组的名字,而$menu是数组的一个元素。 -
顺便说一句,您不需要在循环中准备语句。准备一次,使用
bindParam将参数绑定到变量引用,然后设置变量并在循环中调用execute()。 -
好吧,反正你每次都覆盖它,也许你想要
$results[] = $statement->fetchAll(); -
是的,我在 '$menu' 中有一个包含 4 个数据的数组,我正在尝试打印与 ''$menu'' 关联的所有数据