У меня есть два файла php с использованием postgres и почтальона. Я использую почтальон для токена JWT, чтобы вставить данные в таблицу. Но, похоже, появляется сообщение об ошибке: невозможно создать пользователя. кто угодно может помочь там, где я ошибаюсь. Неправильный ли запрос вставки? или вызывается какой-либо объект ошибки. спасибо.
- create_user. php
<?php
// required headers
header("Access-Control-Allow-Origin: http://localhost/project_03/");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
// files needed to connect to database
include_once 'config/database.php';
include_once 'objects/user.php';
// get database connection
$database = new Database();
$db = $database->getConnection();
// instantiate product object
$user = new User($db);
// get posted data
$data = json_decode(file_get_contents("php://input"));
// set product property values
$user->firstname = $data->firstname;
$user->email = $data->email;
$user->password = $data->password;
// create the user
if(
!empty($user->firstname) &&
!empty($user->email) &&
!empty($user->password) &&
$user->create()
){
// set response code
http_response_code(200);
// display message: user was created
echo json_encode(array("message" => "User was created."));
}
// message if unable to create user
else{
// set response code
http_response_code(400);
// display message: unable to create user
echo json_encode(array("message" => "Unable to create user."));
}
?>
2.user. php
<?php
// 'user' object
class User{
// database connection and table name
private $conn;
private $table_name = "examp";
// object properties
public $id;
public $firstname;
//public $lastname;
public $email;
public $password;
// constructor
public function __construct($db){
$this->conn = $db;
}
// create new user record
function create(){
$stmt = $this->conn->prepare("INSERT INTO" . $this->table_name . "(firstname,email,password) VALUES (:firstname,:email,:password)");
// prepare the query
//$stmt = $this->conn->prepare($query);
// sanitize
$this->firstname=htmlspecialchars(strip_tags($this->firstname));
$this->email=htmlspecialchars(strip_tags($this->email));
$this->password=htmlspecialchars(strip_tags($this->password));
// bind the values
$stmt->bindParam(':firstname', $this->firstname);
$stmt->bindParam(':email', $this->email);
// hash the password before saving to database
$password_hash = password_hash($this->password, PASSWORD_BCRYPT);
$stmt->bindParam(':password', $password_hash);
// execute the query, also check if query was successful
if($stmt->execute()){
return true;
}
return false;
}
// emailExists() method will be here
}
?>