ookldev
@ookldev
JS/Node.js developer

Почему не меняется значение в базе данных?

Использую библиотеку RedBeanPHP. Суть кода заключается в сравнении code взятого из get запроса с значением в базе данных, и если коды одинаковые, значение status должно поменяться с 0 на 1. сode сравнивается со значением бд успешно (если там будет правилные, то выведет "Аккаунт успешно активирован", если нет - "Неверный код", но даже если code подходящий, значеине status не уввеличится).
Где в коде ошибка?

<?php
require "db.php";

if(isset($_GET['code'])){
    $code = $_GET['code'];
    $user  = R::findOne('users','activation = ?',[$code]);
    if(count($user)){
        if($user->status == 0){
            $user->status = 1;
            R::store($user);
            $msg = 'Ваш аккаунт успешно подтверждён!';
        } else { $msg = "Ваш аккаунт уже активирован, нет необходимости активировать его снова.";}
    } else { $msg = "Неверный код активации.";}
  echo $msg;
}
?>


P.S. В db.php назодятся данные для подключения к базе данных и require 'rb.php';
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 1
@fapsi
Безработный
Вы длину массива с данными пользователя с каким значением сравниваете? Ибо эта конструкция синтаксически неверна.
if(count($user))

Возможно, стоит отредактировать?
if($user!=null)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы