这个让我困惑。我有一个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'

09-06 15:59