MySQL查询将字段设置为0而不是空字符串

时间:2009-09-09 23:53:29

标签: php mysql pdo prepared-statement

这个令我困惑的是。我有一个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

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

1 个答案:

答案 0 :(得分:8)

Gidday,

问题出现在这部分问题中:

SET acode='' AND status='active'

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

SET acode='', status='active'