php oop更新一条记录,但显示一条错误消息

31moq8wy  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(286)

我正在用php-oop制作一个登录/注册系统。现在我做的是创建一个名为 update.php 更新用户名:

<form action="" method="POST">
<div class="field">
    <label for="name">Name:</label>
    <input type="text" name="name" value="<?php echo escape($user->data()->name); ?>">

    <input type="submit" value="Update">
    <input type="hidden" name="token" value="<?php echo Token::generate(); ?>">
</div>

然后我添加了这些代码作为动作:

if($validation->passed())
{
    try
    {
        $user->update(array(
        'name' => Input::get('name')
    ));

    Session::flash('home','Your details have been updated');
    Redirect::to('index.php');
    }
    catch(Exception $e)
    {
        die($e->getMessage());
    }
}
else
{
    foreach($validation->errors() as $error)
    {
        echo $error, '</br>';
    }
}

这里是 update 用户类中的方法:

public function update($fields = array(),$id = NULL)
    {
        if(!$id && $this->isLoggedIn())
        {
            $id = $this->data()->id;
        }
        if(!$this->_db->update('users', $id, $fields)) 
        {
            throw new Exception('There was a problem updating');
        }
    }

因此,每当我试图更新我的帐户名,它说有一个问题更新,但它已经更新了帐户名。因此,您的详细信息已更新的消息应该出现,而不是!

ahy6op9u

ahy6op9u1#

public function update($fields = array(),$id = NULL)
    {
        if(!$id && $this->isLoggedIn())
        {
            $id = $this->data()->id;
        }
        try
        {
            !$this->_db->update('users', $id, $fields);
        }
        catch(Exception $e)
        {
            die($e->getMessage());
        }
    }

相关问题