1

以下代码在运行时不会产生任何错误,但也不起作用。

如果我用占位符替换服务器代码部分中的查询,echo "8";它将很好地返回并在底部的 html 文件中显示我想要的方式。但是 PHP 执行在$mysqli->query()列出的第一个文件中停止。我试过在 MySQL 工作台中运行查询,它工作正常。PHP 没有给我任何错误。难倒...

这是我的服务器代码。(db_connect.php)

<?php
error_reporting(E_ALL);

function dbConnect() {
    $mysqli = new mysqli("localhost", "root", "", "my_db");

    if ($mysqli->connect_errno) {
        die ("ERROR: There was an error connecting to the db: " . $mysqli->connect_error);
    }

    return $mysqli;
}

function getHealth() {
    $mysqli = dbConnect();

    if($mysqli->query("SELECT * FROM player where name='testname';")) {
        printf("This will return the player health here.");
    }
    else {
        printf("query failure: %s", $mysqli->error));
    }

    $mysqli->close();
}
?>

这是我的调用代码:(getdata.php)

<?php
error_reporting(E_ALL);

$requestType = $_GET['req']; // TODO: NOT SECURE

require "db_connect.php";

switch($requestType) {
    case "health":
        echo getHealth();
    break;

    default:
        die ("request not recognized");
}

?>

这是发出ajax请求的地方:(ajaxexample.html

<html>

<head>
<script>

var xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
     document.write("User Health is: " + xmlhttp.responseText);
  }
}

function retrieveUserInfo(requestString) {
    xmlhttp.open("GET","getdata.php?req=" + requestString, true);
    xmlhttp.send();
}

retrieveUserInfo('health');

</script>
</head>

</body>

</html>
4

0 回答 0