Php Phalcon模型更新不工作
这是我的模型:Php Phalcon模型更新不工作,php,mysql,phalcon,Php,Mysql,Phalcon,这是我的模型: class Users extends Model { public $id; public $fname; public $lname; public $email; public $password; public $emailVerified; public $suspended; } 现在我要挂起一个用户 $user = Users::findFirst(
class Users extends Model
{
public $id;
public $fname;
public $lname;
public $email;
public $password;
public $emailVerified;
public $suspended;
}
现在我要挂起一个用户
$user = Users::findFirst(
array(
'conditions' => "email=:email:",
'bind' => array(
'email' => $context->request->getPost("email")
))
);
$user->suspended = 1;
$user->save();
现在问题来了,在我更新用户数据后,suspended
字段按预期设置为1
,但奇怪的是,emailVerified
字段也被更新了。现在,两个字段都保存值:1
我不知道这是怎么发生的。我搜索了互联网,但没有找到类似的问题。我做错什么了吗
更新:
这是mySQL日志。我发现了问题。Phalcon查询生成器为emailVerified
创建的值包装在单引号中。所以它是一个字符串,字段类型是bit
我看不出你上面的代码有任何错误导致你看到的问题。我建议您将数据库设置为转储所有SQL请求,并仔细检查数据库中的默认值和函数,这些默认值和函数可能会更改数据库中的值 我不久前也遇到过这个问题。Phalcon中似乎不支持
bit
列。您应该改用tinyint
我还发现了一个“确认”语句。查询中为
emailVerified
提供的值被包装在单引号中。我认为这就是问题所在,但我不知道如何解决它。您的用户模型中有beforeValidation或beforeSave方法吗?
111 Query
UPDATE `users` SET `fname` = 'user_fname', `lname` = 'user_lname', `email` = 'user_email', `emailVerified` = '0', `suspended` = 1 WHERE `id` = '3'
111 Quit