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

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

有帮助吗?

解决方案

Gidday,

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

SET acode='' AND status='active'

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

SET acode='', status='active'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top