1

これは私を困惑させます。PDO を介して実行される MySQL クエリがあります。

$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 に答える