2014-02-06 38 views
-1

请记住,我完全是OOP概念的新手,我一直在尝试从mysql数据库检索数据并回显结果。是那样简单,但我有这么及彼不同的错误是应该返回结果无法回显数组结果“未定义的变量:行”

function fetchUserByEmail($email=NULL) 
{ 
    if($email!=NULL) { 
     $column = "email"; 
     $data = $email; 
    } 
    global $mysqli,$db_table_prefix; 
    $stmt = $mysqli->prepare("SELECT 
     id, 
     user_name, 
     display_name, 
     password, 
     email, 
     activation_token, 
     last_activation_request, 
     lost_password_request, 
     active, 
     title, 
     sign_up_stamp, 
     last_sign_in_stamp 
     FROM ".$db_table_prefix."users 
     WHERE 
     $column = ? 
     LIMIT 1"); 
     $stmt->bind_param("s", $data); 

    $stmt->execute(); 
    $stmt->bind_result($id, $user, $display, $password, $email, $token, $activationRequest, $passwordRequest, $active, $title, $signUp, $signIn); 
    while ($stmt->fetch()){ 
     $row = array('id' => $id, 'user_name' => $user, 'display_name' => $display, 'password' => $password, 'email' => $email, 'activation_token' => $token, 'last_activation_request' => $activationRequest, 'lost_password_request' => $passwordRequest, 'active' => $active, 'title' => $title, 'sign_up_stamp' => $signUp, 'last_sign_in_stamp' => $signIn); 
    } 
    $stmt->close(); 
    return ($row); 
} 

什么,我需要知道的是完全相同的功能,我要去如何调用结果在html标签

这里是我的尝试:

$email = mysql_real_escape_string($_POST['email']); 
fetchUserByEmail($email); 
    ?><ul> 
     <div style="background-color:#EEEEEE" class="content"> 
      <li> 
      <h2><?php echo $row['id'];?></h2> 

我得到通知:未定义的变量:ERROR

+2

'$行= fetchUserByEmail($电子邮件);' – vee

回答

0

你看,里面的局部变量$row函数在结束执行时会丢失。由于此线路<h2><?php echo $row['id'];?></h2>fetchUserByEmail()之外,因此$row将在该时刻未定义。

您可以将功能的结果赋值给变量$row$row = fetchUserByEmail($email)