困惑:mysqli查询暂停脚本但没有错误消息

时间:2013-05-16 23:18:05

标签: php ajax mysqli

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

如果我使用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>

0 个答案:

没有答案