[英]MySQLi and OOP PHP Error
Parse error: syntax error, unexpected '$this' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs\Login-OOP\classes\class.user.php on line 28
上面是我得到的错误,我的class.user.php是:
<?php
class Users {
public $db;
public function __construct() {
$this->db = new mysqli("localhost", "root", "<removed for privacy>", "oop");
}
public function login($username, $password) {
$stmt = $this->db->prepare("SELECT username, password FROM users WHERE username=$username AND password=$password");
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
$stmt->bind_result($username, $password);
$stmt->store_result();
if($stmt->num_rows == 1) {
while($stmt->fetch()) {
$_SESSION['username'] == $username;
header("Location: home.php");
exit;
}
}
else {
header("Location: index.php?e=invalidlogin");
exit;
}
$stmt->close();
$stmt->free_result();
}
$this->db->close();
}
?>
那么,有什么可以做的吗? 我正在尝试访问我的index.php,因此,如果您需要我的index.php,则为:
<?php
session_start();
include "classes/class.user.php";
if(isset($_REQUEST['submit'])) {
extract($_REQUEST);
$login = $users->login($username, $password);
}
?>
<!DOCTYPE html>
<head>
<title>Login</title>
</head>
<body>
<form method="POST" action="" name="submit">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
我希望此错误有解决方案,我认为这是一个奇怪的错误。 您能否建议导致此错误的原因? 另外,如果我以不安全的方式使用任何代码,请让我知道以改善我的习惯。
移动此$this->db->close();
在您的public function login($username, $password)
内public function login($username, $password)
那是...
$stmt->free_result();
}
$this->db->close();
}
?>
至
$stmt->free_result();
$this->db->close();
}
}
?>
您在这里犯了错误。 $this->db->close();
尝试在destructor
关闭数据库连接
public function __destruct()
{
$this->db->close();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.