La consulta MySQL establece el campo en 0 en lugar de una cadena en blanco
-
05-07-2019 - |
Pregunta
Este me está desconcertando. Tengo una consulta MySQL, que se ejecuta a través de PDO:
$stmt = $db->prepare( "UPDATE member SET acode='' AND status='active' WHERE username=:u" );
$stmt->bindValue( ':u', $member->username, PDO::PARAM_STR );
$stmt->execute();
El campo acode
se establece en 0 por alguna razón. Fue creado con
`acode` varchar(8) NOT NULL
¿Hay algo especial que deba hacer al usar declaraciones preparadas?
Solución
Gidday,
El problema viene con esta parte de su consulta:
SET acode='' AND status='active'
el AND convierte esto en la verificación booleana de '' AND status = 'active', que se evalúa en 0. Cambie su consulta a:
SET acode='', status='active'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow