以下代码在运行时不会产生任何错误,但也不起作用。
如果我用占位符替换服务器代码部分中的查询,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>