Javascript 当mysqli_查询的值不正确时(使用AJAX),不会抛出可见错误

Javascript 当mysqli_查询的值不正确时(使用AJAX),不会抛出可见错误,javascript,php,ajax,mysqli,Javascript,Php,Ajax,Mysqli,我有一个文件,它使用PhP、JavaScript、HTML、AJAX、CSS、MySQLi和SQL,基本上是一个带有一些字段的页面,然后它使用AJAX将信息发送到数据库以进行连接,而不刷新页面 一切正常,只是我不能让它显示或die()的错误。。我通过更改my_表(…)中的一个值来测试它,这使得它不会向数据库发送信息,但用户没有ideia,因为没有错误消息。我怎样才能让它抛出错误 我不知道我做错了什么,但如果我不得不打赌,那一定是AJAX没有刷新页面或其他什么。我已经看到了一些问题,我相信他们确实

我有一个文件,它使用PhP、JavaScript、HTML、AJAX、CSS、MySQLi和SQL,基本上是一个带有一些字段的页面,然后它使用AJAX将信息发送到数据库以进行连接,而不刷新页面

一切正常,只是我不能让它显示
或die()的错误。
。我通过更改
my_表(…)
中的一个值来测试它,这使得它不会向数据库发送信息,但用户没有ideia,因为没有错误消息。我怎样才能让它抛出错误

我不知道我做错了什么,但如果我不得不打赌,那一定是AJAX没有刷新页面或其他什么。我已经看到了一些问题,我相信他们确实解释了这一点,但是jQuery一直让我困惑

以下是我的代码,其中进行了一些修改,以减少不重要的内容:

<?php
  if(isset($_POST["name"]) && !empty($_POST["name"])) {
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
    mysqli_set_charset($link, "utf8");
    // code
    mysqli_query($link, "INSERT INTO my_table(...)values(...)") or die(mysqli_error($link));
    mysqli_close($link);
    exit;
  }
?>
<html>
  <head>
    <meta charset="UTF-8">
    <script>
      function AJAX() {
        // code
        var xhttp = new XMLHttpRequest();
        xhttp.open('POST', 'my_file.php', true);
        xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xhttp.send(...);
      }
    </script>
  </head>
  </body>
    <!-- code -->
    <button onclick="AJAX()">Send</button>
  </body>
</html>

函数AJAX(){
//代码
var xhttp=newXMLHttpRequest();
open('POST','my_file.php',true);
setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhttp.send(…);
}
发送
编辑以更好地解释情况:

如果我使用这个简单的代码,它工作得很好:

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
mysqli_query($link,"INSERT INTO my_table(Name) VALUES ('Bob')") or die(mysqli_error($link));
mysqli_close($link);
?>

这应该会提示一个错误:

        var xhttp = new XMLHttpRequest();
        xhttp.addEventListener("error", function(event) {
            alert('an error occured');
        });
        xhttp.open('POST', 'my_file.php', true);
        xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xhttp.send(...);
您可以在此处找到有关eventListener的所有信息:


请记住,此错误事件仅在网络故障时触发。如果您需要处理不同的http代码,您将在这里找到一个很好的示例:

如果您想刷新页面,请不要使用AJAX。同样,在同一页面中使用AJAX ping代码也是一个错误。而且,这里没有jQuery。这实际上是一个糟糕的想法。我用更多的信息编辑了这个问题。你读过这个吗?