【发布时间】:2015-10-14 20:17:54
【问题描述】:
在这段代码中,我现在已经定义了变量 id,如果我在大括号外使用$id,我将得到$id 的错误未定义变量。有什么方法可以在括号外使用变量。
<?php
if (isset($_GET['username'])) {
$check = $db->prepare("SELECT id, email, phone, FROM members WHERE username=:username");
$check->execute(array(':username'=>$username));
$get = $check->fetch(PDO::FETCH_ASSOC);
$id = $get['id'];
$email = $get['email'];
}
else {
// error
}
$posts =$db->prepare("SELECT * FROM posts WHERE id=:id");
$posts->execute(array(':id'=>$id));
$row=$posts->fetch(PDO::FETCH_ASSOC));
$title = $row['title'];
$body = $row['body'];
?>
【问题讨论】:
-
首先,您想使用的可能是
$_GET,而不是$get。因此,如果您在将$id设置为$get['id']值(可能不存在)后尝试访问它,您将收到未定义的通知。 -
在大括号外定义它。
-
@AlanMachado 很抱歉造成混淆,但在这里我使用
$get代替$row它不是$_GET -
好的,那么您的问题可能完全是其他问题,例如您的
if子句使您失败。您没有具体说明它被认为是“大括号外”的确切位置,是从if-else出来还是只从if出来(在else内)? -
现在问题已经更新,现在应该清楚了吗