我是php&的新手ajax和我运行一个简单的应用程序,它不起作用,我不知道为什么。我正在使用mamp,windows 8.1。
这是php文件:
<?php
$grId = $_GET["groupId"];
$limit = $_GET["limit"];
if ($limit <= 0) {
$limit = 10;
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "productsdb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, displayName, role, groupId FROM user where groupId = ? limit ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $grId, $limit);
$stmt->execute();
$stmt->bind_result($id, $displayName, $role, $groupId);
$users = array();
while($stmt->fetch()) {
$user = new StdClass();
$user->id = $id;
$user->displayName = $displayName;
$user->role = $role;
$user->groupId = $groupId;
array_push($users, $user);
}
echo json_encode($users);
$stmt->close();
$conn->close();
?>
和html文件:
<html>
<head>
<script src="jquery-2.1.4.js"></script>
<script>
$(document).ready(function () {
$('#students').hide();
$("#getStudentsButton").click(function () {
$.ajax({
dataType: "json",
type: "GET",
url: "getStudentsJson.php",
data: {groupId: 1, limit: 7},
success: renderTable
});
});
function renderTable(data) {
var trHTML = '';
$.each(data, function (i, item) {
trHTML += '<tr><td>' + item.id + '</td><td>' + item.displayName + '</td><td>'
+ item.role + '</td> <td> ' + item.groupId + ' </td></tr>';
});
$('#students').append(trHTML);
$('#students').show();
}
});
</script>
</head>
<body>
The list of students:
<div id="maindiv">
<table id="students" border="1">
<tr>
<th>Id</th>
<th>Name</th>
<th>Role</th>
<th>GroupId</th>
</tr>
</table>
</div>
<input id="getStudentsButton" type="button" value="Load students"/>
</body>
</html>
我在浏览器中写道:http://localhost/nameOfFolder/getStudentsJson.php,我收到错误:
连接失败:无法连接到'localhost'上的MySQL服务器(10061)
现在我认为错误可能是在安装Mamp之前我也有Mysql.I已经在phpmyadmin中创建了一个名为productsdb的新数据库,其中包含4列。我认为这使得phpmyadmin和我的数据库中存在一些关于数据库的冲突MySQL的。我在php文件中编写的名称localhost正在试图连接到我的本地mysql,这是我在使用mamp安装之前的那个。
解决这些问题的任何解决方案?
答案 0 :(得分:1)
错误(2003)无法连接到'服务器'上的MySQL服务器(10061)表示网络连接已被拒绝。您应检查是否有MySQL服务器正在运行,是否已启用网络连接,以及您指定的网络端口是服务器上配置的网络端口。
这可能是服务器未运行(如果您可以在PHPMyAdmin中查看相关信息,则不太可能)或可能存在防火墙问题。你表示你在Windows上,所以我首先要禁用防火墙并测试连接,然后通过他们在MySQL手册中提供的清单进行处理。