Mysqli->error 返回一个空值
Posted
技术标签:
【中文标题】Mysqli->error 返回一个空值【英文标题】:Mysqli->error is returning a blank value 【发布时间】: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)
【参考方案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的响应数组- >错误。以上是关于Mysqli->error 返回一个空值的主要内容,如果未能解决你的问题,请参考以下文章
mysqli->query 在更新时返回 true,但不影响行