我在PHP中遇到全局变量问题。我只包含以下数据mysqli的配置文件:PHP访问全局变量的问题
$mysqli = new mysqli("localhost", "user", "pass", "db");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
我有另外一个文件下面的类:
class user{
function username_exists($username){
global $mysqli;
if ($stmt = $mysqli->prepare("SELECT username FROM users WHERE username=?")) {
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->store_result();
$count=$stmt->num_rows;
$stmt->close();
}
return ($count > 0 ? true : false);
}
...
some more functions
...
}
现在这个工作罚款,但在我previous question on SO,有人告诉我,访问全局变量是一种不好的做法,就像我在上面的课程中所做的那样。所以,我试图通过全局变量在构造函数中,以下列方式:
private $mysqli;
function __construct()
{
global $mysqli;
$this->mysqli = $mysqli;
}
function username_exists($username){
//global $mysqli;
if ($stmt = $this->mysqli->prepare("SELECT username FROM users WHERE username=?")) {
,我得到以下错误:
Fatal error: Call to a member function prepare() on a non-object in...(line number)
能否请你告诉我什么问题它以及如何解决这个问题?谢谢。 编辑:对不起__construct的拼写错误。这里输入的只是错误,而错误不是因为这个。
为什么ü写'专用$ mysqli的;'最后的代码块 – diEcho 2011-03-07 13:09:10