PDO->execute()语句不工作,语法正确


PDO->execute() statement won't work and is syntactically correct

我不明白为什么这个PDO语句不会将任何内容保存到数据库中:

          //guardamos en base           
          $conectar2 = new PDO('mysql:host='.HOST.'; dbname='.DATABASE.'; charset=utf8', USER, PASS); 
          $conectar2->beginTransaction();
          $agregarData = $conectar2->prepare("
              UPDATE mensajes
              SET estadoMensaje = ?, 
                  datosMensaje = ?
              WHERE mensajeID = ?;
            ");
          $agregarData->bindParam(1, $estadoMensaje);
          $agregarData->bindParam(2, $data);
          $agregarData->bindParam(3, $mensajeID);             
          $agregarData->execute();
          echo '<br>Mensaje actualizado.';

我的错误日志不会显示任何内容。有没有什么我可能没注意到的地方?

我已经尝试了sql语句进入mysql的手,它的工作。

我已经回显了变量,它们不是空的(它们都是字符串)。

连接成功。

我错过了什么?

您开始了一个事务,但忘记提交。

添加:

$conectar2->commit();

可以解决这个问题。

如果没有发出其他查询,您可以考虑完全删除事务。

"有什么我可能错过的地方吗?"

是的。

$conectar2->beginTransaction();

这部分需要去掉