我正在用PHP练习OOP,并且我有一个照相馆的测试项目,所以我的问题是创建帐户后,我编写了php代码,该代码应基于数据库中的最新条目来创建目录。
这是我用于创建帐户的PHP代码
<?php //accountcreation.php
header('Content-Type: application/json');
include_once "./database.php";
include_once "./helpers.php";
include_once "./classes/Users.php";
$results = array("status" => 0, "message" => "Incomplete data sent...");
if (isset_and(POST, array("userName","passWord","firstName","lastName","eMail","birthDate"))) {
$userName = sanitize(POST["userName"], NOSPACE, FILTER_SANITIZE_STRING, $mysqli);
$passWord = sanitize(POST["passWord"], NOSPACE, FILTER_SANITIZE_STRING, $mysqli);
$firstName = sanitize(POST['firstName'], NOSPACE, FILTER_SANITIZE_STRING, $mysqli);
$lastName = sanitize(POST['lastName'], NOSPACE, FILTER_SANITIZE_STRING, $mysqli);
$eMail = sanitize(POST['eMail'], NOSPACE, FILTER_SANITIZE_STRING, $mysqli);
$birthDate = sanitize(POST['birthDate'], NOSPACE, FILTER_SANITIZE_STRING, $mysqli);
$account = User::create($mysqli);
if ($account == null)
$results["message"] = "No data sent!";
else {
$results["message"] ="Account Created Successfully!";
$query3 ="SELECT * FROM users ORDER BY userID DESC LIMIT 1";
$result3= mysqli_query($mysqli, $query3);
while ($latest= mysqli_fetch_array($result3,MYSQLI_ASSOC)){
$userID=$latest['userID'];
if (!file_exists('users/$latest')) {
mkdir('users/$latest', 0777, true);
}
}
}
}
echo json_encode($results);
?>
这是我的“ USERS”的PHP类代码
<?php // 'classes/Users.php'
class User {
public $userID, $userName, $passWord, $firstName,$lastName, $birthDate,
$eMail, $pathToDP;
public function __construct($userID, $userName, $passWord, $firstName,$lastName, $birthDate,
$eMail, $pathToDP) {
$this->userId = $userID;
$this->username = $userName;
$this->password = $passWord;
$this->firstname = $firstName;
$this->lastname = $lastName;
$this->birthdate = $birthDate;
$this->email = $eMail;
$this->image = $pathToDP;
}
public static function login($mysqli, $username, $password) {
$stmt = $mysqli->prepare("SELECT * FROM `users` WHERE `userName` = ? AND `passWord` = ? LIMIT 1");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$result = $stmt->get_result();
$rows = $result->num_rows;
$user = null;
while ($row = $result->fetch_assoc()) {
$user = new User($row['userID'], $row['userName'], $row['passWord'], $row['firstName'], $row['lastName'], $row['birthDate'],
$row['eMail'], $row['pathToDP']);
}
$stmt->close();
return $user;
}
public static function get($mysqli, $id) {
$stmt = $mysqli->prepare("SELECT * FROM `users` WHERE `userID` = ? LIMIT 1");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
$rows = $result->num_rows;
$user = null;
while ($row = $result->fetch_assoc()) {
$user = new User($row['userID'], $row['userName'], $row['passWord'], $row['firstName'], $row['lastName'], $row['birthDate'],
$row['eMail'], $row['pathToDP']);
}
$stmt->close();
return $user;
}
public function create($mysqli) {
$stmt = $mysqli->prepare("INSERT INTO `users`('userName','passWord','firstname','lastname','birthdate','eMail','pathToDP') VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("iissssssssss", $this->userName, $this->passWord, $this->firstName, $this->lastName,
$this->birthDate, $this->eMail, $this->image);
$stmt->execute();
$stmt->close();
}
public static function type_description($mysqli, $userType) {
$stmt = $mysqli->prepare("SELECT `description` FROM `ref_usertype` WHERE `idusertype` = ? LIMIT 1");
$stmt->bind_param("i", $userType);
$stmt->execute();
$stmt->bind_result($description);
$stmt->close();
return $description;
}
}
?>
但是,我遇到了这个错误并被卡住了。 “
致命错误:未捕获的错误:在C:\ xampp \ htdocs \ webtechmp \ actions \ classes \ Users.php:60中的bool上调用成员函数bind_param()
堆栈跟踪:
请帮助