2009-09-09 53 views
1

这是一个令我困惑的问题。我有一个MySQL查询,正在运行虽然PDO:MySQL查询将字段设置为0而不是空白字符串

$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 

使用预准备语句时,我需要做些什么吗?

回答

8

Gidday,

问题带有您的查询的这个部分:

SET acode='' AND status='active' 

的,变身的“”和状态=“活跃”布尔检查,其结果为0这一点。将您的查询改为:

SET acode='', status='active' 
+0

D'oh!小学生的错误,不能相信我错过了... – DisgruntledGoat 2009-09-10 00:05:29

+0

嘿,它发生了 - 很像我在参数表上做'UPDATE'并忘记'WHERE'子句的常见习惯! – 2009-09-10 00:10:56

相关问题