Я новичок в php & ajax, и я запускаю простое приложение, оно не работает, и я не знаю почему. Я использую mamp, windows 8.1.Ошибка подключения: невозможно подключиться к серверу MySQL на 'localhost' php
Вот файл 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 в браузере, и я получаю сообщение об ошибке:
Connection failed: Can't connect to MySQL server on 'localhost' (10061)
сейчас Я думаю, что ошибка может быть в том, что перед установкой Mamp у меня также был Mysql.I сделал новую базу данных в php myadmin named productsdb с 4 столбцами. Я думаю, что было сделано несколько конфликтов в отношении базы данных из phpmyadmin и моей базы данных mysql. И имя localhost, которое я написал в php-файле, активно пытается подключиться к моему локальному mysql, который у меня есть до того, который установлен с помощью mamp.
Любое решение для устранения этих проблем?
Это работает, если вы меняете '$ servername =" localhost ";' на '$ servername =" 127.0.0.1 ";'? – Asaph
phpmyadmin - это просто скрипт php, который подключается к базе данных mysql. можете ли вы подключиться к mysql @ localhost с помощью инструмента/клиента, такого как командная строка mysql, mysql workbench и т. д.? – JimL
теперь он работает, я ничего не делал, думаю, что я плохо писал в браузере. операция не работает. Я не могу загрузить пользователей из базы данных –