2016-01-06 58 views
1

我在Windows 7中使用php和mysql的wamp服务器。有一个连接到mysql数据库的类,db__connect文件用于建立连接。包含在一个类中的PHP访问对象。

下面是db_connect的代码;

<?php 
 

 

 
include_once 'psl-config.php'; // Needed because functions.php is not included 
 
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE); 
 
if ($mysqli->connect_error) { 
 
    header("Location: ../error.php?err=Unable to connect to MySQL"); 
 
    exit(); 
 
}

下面是CLAS代码:

<?php 
 

 
include_once $_SERVER['DOCUMENT_ROOT'].'/datacentre/admin/includes/db_connect.php'; 
 

 
class User { 
 
\t 
 
\t function getPermission($email, $perms) { 
 
\t 
 
\t \t if ($stmt = $mysqli->prepare("SELECT members.email , groups.permission FROM members 
 
\t \t         JOIN groups ON members.group_id = groups.group_id 
 
\t \t \t \t \t \t \t \t \t \t WHERE email = ? LIMIT 1")) { 
 
     $stmt->bind_param('s', $email); // Bind "$email" to parameter. 
 
     $stmt->execute(); // Execute the prepared query. 
 
     $stmt->store_result(); 
 
     // get variables from result. 
 
     $stmt->bind_result($user_email, $user_perms); 
 
\t \t print "yes we can ".$user_perms; 
 
\t \t exit(); 
 
\t \t 
 
\t \t if($perms & $user_perms) 
 
\t \t {return true; 
 
\t  exit();} 
 
\t 
 
\t return false; 
 
    exit(); 
 
} 
 
\t \t 
 
\t } 
 

 

 
?>

下面是错误消息 enter image description here

+0

您在全局范围内声明'$ mysqli'(顺便说一句坏习惯),然后尝试在对象方法中使用它。这些是不同的范围。 – arkascha

回答

0

您需要在用户类中声明$ mysqli,但我打赌您会希望在其他类中重用该连接。你会过得更好$传递到mysqli的用户类

new User($email, $perms, $mysqli); 

这当然假定您的全局,而不是实例化另一个类中的User类。