2016-05-18 3 views
0

Я новичок в 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.

Любое решение для устранения этих проблем?

+0

Это работает, если вы меняете '$ servername =" localhost ";' на '$ servername =" 127.0.0.1 ";'? – Asaph

+0

phpmyadmin - это просто скрипт php, который подключается к базе данных mysql. можете ли вы подключиться к mysql @ localhost с помощью инструмента/клиента, такого как командная строка mysql, mysql workbench и т. д.? – JimL

+0

теперь он работает, я ничего не делал, думаю, что я плохо писал в браузере. операция не работает. Я не могу загрузить пользователей из базы данных –

ответ

1

The error (2003) Can't connect to MySQL server on 'server' (10061) indicates that the network connection has been refused. You should check that there is a MySQL server running, that it has network connections enabled, and that the network port you specified is the one configured on the server.

Manual

Это может быть либо сервер не работает (не очень вероятно, если вы можете увидеть соответствующую информацию в PHPMyAdmin) или возможный вопрос брандмауэра. Вы указали, что находитесь в окнах, поэтому я бы начал с отключения брандмауэра и тестирования подключения, а затем выполнил контрольный список, который они предоставляют в руководстве по MySQL.