我不明白为什么这个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();

发出查询后,您的问题将得到解决。
如果没有发出其他查询,则可以考虑完全删除事务。

10-06 08:02