После отправки POST запроса на сервер с PHP://input равным {"name":"Эмиль","surname":"Ахмадуллин","password":"Some_password231"} код возвращает {}. Хотя в базе данных есть строка с данными name=Эмиль, surname=Ахмадуллин.

login.php
<?php
require '../users.php';
$users = new Users();
if (!$users) {
echo $users->lastErrorMsg();
} else {
$data = json_decode(file_get_contents('php://input'), true);
$cmd = $users->prepare('SELECT * FROM users WHERE name=? AND surname=?');
$cmd->bindValue(1, $data['name']);
$cmd->bindValue(2, $data['surname']);
$result = $cmd->execute();
echo json_encode($result, true);
}
?>
users.php
<?php
class Users extends SQLite3 {
function __construct() {
$this->open('/home/runner/Dnievnik/users.db');
$this->exec('CREATE TABLE IF NOT EXISTS users (
id INT PRIMARY KEY,
name CHAR(32) NOT NULL,
surname CHAR(32),
password CHAR(32) NOT NULL,
school CHAR(16),
class CHAR(8),
admin BOOLEAN
)');
}
}
?>
bindValueтретьим параметром наверное надо тип указать, судя по документации https://www.php.net/manual/en/pdostatement.bindvalue.php – Алексей Шиманский Sep 13 '23 at 13:50