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?

¿Fue útil?

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
scroll top