【问题标题】:Mysqli->error is returning a blank valueMysqli->error 返回一个空值
【发布时间】:2016-07-17 17:32:32
【问题描述】:

我正在尝试将错误返回给 ajax 帖子。但是mysqli->error 返回空白。我尝试了很多方法来做到这一点,但总是一样的。我不知道php.ini 上是否有一些配置要做。请帮忙!

这是我的菜鸟代码

        $sql = "UPDATE ve_industria SET industria_nome='blabla',industria_descricao='blabla' WHERE industria_Id='124142354'";
        $result = $mysqli->query($sql);
        if (!$result) {
            $arr['resposta'] = "0";
            $arr['mensagem'] = $mysqli->error;
            $arr['titulo'] = "ERRO !";
            $arr['tipo'] = "error";
        }
        if ($result) {
            $arr['resposta'] = "1";
            $arr['mensagem'] = "Registro atualizado com sucesso no banco de dados :)";
            $arr['titulo']   = "Registro Atualizado !";
            $arr['tipo']     = "success";
        }
        echo json_encode($arr); 

这些信息,我将用 ajax 页面返回给主 html,以显示在指定错误的模式框中。

【问题讨论】:

  • 仅仅因为$result 是“不”,并不意味着有错误。事实上,这可能只是意味着更新没有更改任何内容,这不是错误 - 而是“没有任何更新”的结果。
  • @cale_b 查看文档,mysqli::query() 在执行 SELECT、SHOW、DESCRIBE 或 EXPLAIN 时返回 true、false 或结果对象。你所说的听起来像是返回的受影响行数(这将是 mysqli::$affected_rows)

标签: php jquery mysql ajax post


【解决方案1】:

mysqli->affected_rows 将为您提供上次 mysql 操作更新的记录数。

http://php.net/manual/en/mysqli.affected-rows.php

用受影响的行更新了您的代码。

 $sql = "UPDATE ve_industria SET industria_nome='blabla',industria_descricao='blabla' WHERE industria_Id='124142354'";
        $mysqli->query($sql);
        if ($mysqli->affected_rows<=0) {
            $arr['resposta'] = "0";
            $arr['mensagem'] = "0 Records Updated"
            $arr['titulo'] = "ERRO !";
            $arr['tipo'] = "error";
        } else  {
            $arr['resposta'] = "1";
            $arr['mensagem'] = "Registro atualizado com sucesso no banco de dados :)";
            $arr['titulo']   = "Registro Atualizado !";
            $arr['tipo']     = "success";
        }
        echo json_encode($arr); 

【讨论】:

  • 感谢您的回答,但此解决方案不会带来“mysqli>错误”。我需要通过 json 值将错误带到主页。但是 mysqli->error 被赋予了一个空白值。
  • 添加异常处理try,catch到$mysqli->query($sql),当执行$sql发生任何错误时,会去catch,那里添加mysql的响应数组- >错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 2015-10-09
  • 2021-12-03
  • 2014-02-11
  • 2021-12-05
  • 1970-01-01
相关资源
最近更新 更多