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