这个让我困惑。我有一个MySQL查询,正在通过PDO运行:
$stmt = $db->prepare( "UPDATE member SET acode='' AND status='active' WHERE username=:u" );
$stmt->bindValue( ':u', $member->username, PDO::PARAM_STR );
$stmt->execute();
由于某些原因,
acode
字段设置为0。它是用`acode` varchar(8) NOT NULL
在使用准备好的陈述时,我需要做些特别的事情吗?
最佳答案
吉迪,
问题出在查询的这一部分:
SET acode='' AND status='active'
和将其转换为对“”和status=“active”的布尔检查,其计算结果为0。将查询更改为:
SET acode='', status='active'