1

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

使用准备好的语句时我需要做些什么特别的事情吗?

4

1 回答 1

8

吉日,

问题与您的查询的这一部分有关:

SET acode='' AND status='active'

AND 将其转换为 '' AND status='active' 的布尔检查,其计算结果为 0。将您的查询更改为:

SET acode='', status='active'
于 2009-09-09T23:58:24.023 回答