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

PHP MySQLi display error message in JavaScript alert

是否可以将 PHP/MySQLi "or die" 错误消息保存在变量中并在 JavaScript 警报 window 中显示?

我在下面的查询中根本没有使用 "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 警告,说明 'Error saving record' 但 不是 错误是什么。可能是重复的或其他错误。

我希望能够显示确切的错误。如果除了这种方式还有其他方式,请告诉我。

我在想这样的事情可能会奏效:

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

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

没有这种情况你会需要它。

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

再次,

系统错误不针对用户!

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

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