Запрос вставляет случайные вещи в таблицу db?

100
9

Я подключился к базе данных, так что я понимаю, что мое соединение прекрасное, и я также использую MVC и PDO, однако при вставке в таблицу он дает мне случайные значения, а не фактические значения, заданные из post-переменных, например, в моей таблице под каждым столбцом его вставка '1' там, а не значения были установлены. Это мой код:

Это функция в моем классе регистров:

    public function signup($email,$password,$firstname,$lastname,$mobile){

$query = 'INSERT INTO testing (username, password, first_name, last_name, mobile) VALUES (:email, :password, :firstname, :lastname, :mobile)';

//putting it in a variable
$statement = $this->_dbHandle->prepare($query);

//variables
$statement->bindParam(':email', $email);
$statement->bindParam(':password', $password);
$statement->bindParam(':firstname', $firstname);
$statement->bindParam(':lastname', $lastname);
$statement->bindParam(':mobile', $mobile);

// Then execute the query
$statement->execute();

return $statement->fetch(PDO::FETCH_ASSOC);

}

это где im передаёт параметры из (моего контроллера register.php):

<?php
require_once("Models/reg.php");
require_once("Views/register.phtml");
$view = new stdClass();
$view->pageTitle = 'Register';

$registerUser = new reg();

if(isset($_POST["email"]) && isset($_POST["password"]) && isset($_POST["firstname"]) && isset($_POST["lastname"]) && isset($_POST["mobile"]))
{
$registerQuery = $registerUser->signup(isset($_POST["email"]),isset($_POST["password"]),isset($_POST["firstname"]),isset($_POST["lastname"]),isset($_POST["mobile"]));
}

И в моем phtml файле у меня есть текстовые поля с такими именами, как "email", "password", "firstname", "lastname", "mobile",

Кто-нибудь понимает, что я делаю неправильно?

спросил(а) 2021-01-19T19:38:07+03:00 6 месяцев, 1 неделя назад
1
Решение
90

isset($_POST["email"]) возвращает 1 (или 0, если false), поэтому вы получаете то, что вы говорите, чтобы положить в db, просто удалите isset() s

if(isset($_POST["email"]) && isset($_POST["password"]) && isset($_POST["firstname"]) && isset($_POST["lastname"]) && isset($_POST["mobile"]))
{
$registerQuery = $registerUser->signup($_POST["email"],$_POST["password"],$_POST["firstname"],$_POST["lastname"],$_POST["mobile"]);
}

ответил(а) 2021-01-19T19:38:07+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема