La requête MySQL définit le champ sur 0 au lieu de chaîne vide
-
05-07-2019 - |
Question
Celui-ci me laisse perplexe. J'ai une requête MySQL en cours d'exécution via PDO:
$stmt = $db->prepare( "UPDATE member SET acode='' AND status='active' WHERE username=:u" );
$stmt->bindValue( ':u', $member->username, PDO::PARAM_STR );
$stmt->execute();
Le champ acode
est mis à 0 pour une raison quelconque. Il a été créé avec
`acode` varchar(8) NOT NULL
Y a-t-il quelque chose de particulier à faire lorsque j'utilise des instructions préparées?
La solution
Jeudi,
Le problème vient de cette partie de votre requête:
SET acode='' AND status='active'
AND transforme ceci en vérification booléenne de '' AND status = 'active', ce qui donne 0. Modifiez votre requête en:
SET acode='', status='active'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow