Błąd 500 przy pobraniu danych z serwera bazy danych.

0

Witam,

mam zagwozdkę i próbuję się z nią uporać od wczoraj.

Otóż, zdefiniowałem połączenie do bazy:

$app = new Silex\Application();

$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
    'db.options' => array(
        'driver'   => 'pdo_mysql',
        'dbname' => 'crm',
        'user' => 'root',
        'password' => 'root',
        'charset' => 'UTF8'
    ),
));

w phpMyAdmin, utworzyłem bazę danych o nazwie crm, z kodowaniem UTF8-Polish-ci.

Napisałem funkcję getClients, pobierającą wszystkich klientów z bazy danych:

    public function getClients()
    {
        $sql = "SELECT c.*, cs.name as sector_name, u.name as account_manager_name FROM clients as c LEFT JOIN company_sectors as cs ON c.sector_id = cs.id LEFT JOIN users as u ON c.account_manager_id = u.id";

        return $this->db->fetchAll($sql);
    }

i pare linijek z JSa:
app.js

app.controller('ClientsListCtrl', ['$scope','clients', function($scope, clients){
	$scope.clients = [];

	clients.getClients(function (clients){
		$scope.clients = clients;
		console.log($scope.clients);
	});
}]);

services.js

(function(){
	var app = angular.module('crmService', []);

app.factory('clients',['$http', function($http){

	var _getClients = function (callback){
		callback = callback||function(){};
		$http.get('/api.php/clients')
		.success(function(data){
			callback(data);
		});
	};
	return {
		getClients: _getClients

	};
}]);
})();

i log z konsoli google chrome (próbowałem też IE, Mozillą i to samo błąd 500):

http://fotserv.pl/?topic=load&image=1461309196-Capture.JPG

Jednak ciągle wydaje mi się, że powyższy kod jest dobry, a coś jest nie tak z połączeniem do bazy danych. Proszę o pomoc.

0

Routing odbywa się tylko przez angulara, czy może korzystasz do tego z .htaccess, vide:
http://stackoverflow.com/questions/22739455/htaccess-redirect-for-angular-routes

Na apache e.500 to zazwyczaj problem z przekierowaniami.

0

Przerzuciłem wszystko na serwer home.pl, utworzyłem bazę danych i wyszło szydło z worka:

http://fotserv.pl/?topic=load&image=1461334005-Capture.JPG

coś jest nie tak z angular.min.js chyba, jakieś sugestie ktoś może ma ?

1

http://roma-crm.pl/api.php/clients

PDOException in PDOConnection.php line 36: SQLSTATE[HY000] [1045] Access denied for user 'admin'@'localhost' (using password: YES)

    in PDOConnection.php line 36
    at PDO->__construct('mysql:host=localhost;dbname=roma-crm;charset=UTF8;', 'admin', 'admin', array()) in PDOConnection.php line 36
    at PDOConnection->__construct('mysql:host=localhost;dbname=roma-crm;charset=UTF8;', 'admin', 'admin', array()) in Driver.php line 47
    at Driver->connect(array('driver' => 'pdo_mysql', 'dbname' => 'roma-crm', 'host' => 'localhost', 'user' => 'admin', 'password' => 'admin', 'charset' => 'UTF8'), 'admin', 'admin', array()) in Connection.php line 350

Masz nieprawidłowe dane do dostępu do bazy danych.

0

no właśnie zauważyłem to samo, czyli błędne dane do bazy danych chyba.

1

teraz jest inny błąd, czyli połączenie z bazą zadziałało?

InvalidArgumentException in JsonResponse.php line 123: Malformed UTF-8 characters, possibly incorrectly encoded.
 in JsonResponse.php line 123
at JsonResponse->setData(array(array('id' => '1', 'company_name' => 'Lorem ipsum dolor', 'contact_name' => 
0

no zmieniłem tam dane w pliku api.php, a to z tym Jsonem wtf. Jakby polskich znaków nie czytało chyba. Ale kodowanie w bazie danych mam ustawione na UTF8-Polish-ci

Zmieniłem w zakładce sectors polskie znaki i się wyświetliło, no ale tu muszą być polskie znaki. Czyli kodowanie albo z poziomu PDO, albo w bazie. No ale w bazie się elegancko wyświetlają, popróbuję jeszcze coś pokombinować z PHP

od 17 nad tym siedzę i nie wiem dalej... Założę nowy temat, ten rozwiązany.

Problem był z połączeniem do bazy danych. Złe dane podane w pliku konfiguracyjnym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1