PHP MySQLi 在 JavaScript 警报中显示错误消息

问题描述 投票:0回答:1

是否可以将 PHP/MySQLi“or die”错误消息保存在变量中并将其显示在 JavaScript 警报窗口中?

我在下面的查询中根本没有使用“or die”;有没有办法在 JavaScript 警报中显示错误?

这是我正在使用的代码:

 <?php
   
   $update = "UPDATE table SET column1 = '$variable1', column2 = $variable2' WHERE UID = '$idVariable'";

   $query = mysqli_query($dbc, $update); // or die usually goes here

  if($query == false)
  {
    echo ("<script language='javascript'>
             window.alert('Error saving record.')
             window.location.href='javascript:history.back()'
           </script>");
  }
  else
  {
    echo ("<script language='javascript'>
             window.alert('Updated')
             window.location.href='main.php'
           </script>");
  } 

如您在上面看到的,我运行一个查询,如果失败,它会显示一个 JavaScript 警报,指出“保存记录时出错”,但错误是什么。 可能是重复或其他错误。

我希望能够显示确切的错误。还有其他方法可以实现这一目标吗?

我想这样的事情可能会起作用:

 $query = mysqli_query($dbc, $update) or die($error = mysqli_error());

我尝试在 JavaScript 警报窗口中显示变量 $error,但它不起作用。

javascript php mysqli alert
1个回答
2
投票

不存在您需要它的情况。

  • 万一出现不可挽回的错误
    • 如果是生产服务器,只需说“错误”。给出系统错误消息是令人困惑且不安全的。 记录错误并从那里读取它们。
    • 如果是开发服务器,您不需要花哨的警报,而是需要简单直接的错误消息。只要回应它就可以了。
  • 如果是可恢复的错误(例如重复) - 那么处理它。出现错误,根据已知模式列表进行检查,然后显示 用户友好的提示以更改输入的值。

再说一遍,

系统错误不适合用户!

  • 普通用户不知道什么是重复索引。他们只会感到困惑。
  • 不应向潜在的黑客提供有关您的代码内部结构的免费信息。

因此,用户与系统错误无关。就说声抱歉吧。

© www.soinside.com 2019 - 2024. All rights reserved.