PHP帐户创建OOP

时间:2019-04-19 15:36:50

标签: php sql oop

我正在用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() 堆栈跟踪:

0 C:\ xampp \ htdocs \ webtechmp \ actions \ createaccount.php(16):User :: create(Object(mysqli))

1 {main}放在 60
“ C:\ xampp \ htdocs \ webtechmp \ actions \ classes \ Users.php 中>

请帮助

0 个答案:

没有答案