Ошибка тонкого приложения при подключении к БД - PullRequest
0 голосов
/ 03 апреля 2020

Я новичок ie в Restful API. Я пытаюсь сделать свои собственные следующие rnet учебники. Для этого API я использую Slim PHP Framework.

Я создал свою базу данных. php (файл конфигурации):

<?php
class db{
    //Properties
    private $dbhost = 'localhost';
    private $dbuser = 'root';
    private $dbpass = '';
    private $dbname = 'Connect';
    //Connect
    //create MYSQL connect string
    public function connect(){
        $mysql_connect_str = "mysql:host=$this->dbhost;dbname=$this->dbname";
        $dbConnection = new PDO($mysql_connect_str, $this->dbuser, $this->dbpass);
        $dbConnection->setAttribute(PDO::ATTR_ERRMODE, POD::ERRMODE_EXCEPTION);
        return $dbConnection;
    }
}

А потом я получил свой студентов. php (где я пытаюсь получить данные):

<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;

$app = new \Slim\App;

//Get All Students 

$app->get('/api/students', function(Request $request, Response $response){

    $sql = "SELECT * FROM student";

        try{
            $db = new db();
            // connect 
            $db = $db->connect();

            $stmt = $db->query($sql);
            $students = $stmt->fetchAll(PDO::FETCH_OBJ);
            $db = null;
            echo json_encode($students);


        } catch(PDOException $e){
            //e for errors exception handling
             echo '{"error": {"text": '.$e->getMessage().'}';
        }

});

Мой индекс. php:

<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;


require __DIR__ . '/vendor/autoload.php';
require 'src/config/db.php'; 

$app = new \Slim\App;

$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");
    return $response;
});

//Customer Routes
require 'src/routes/students.php';

$app->run();

Когда я загружаю своих студентов. php файл (http://localhost: 8080 / rest / index.php / api / Students ) появляется эта ошибка:

Slim Application Ошибка Произошла ошибка веб-сайта. Приносим извинения за временные неудобства.

Когда я запускаю терминал и использую эту команду: mysql -u root -p -h localhost Он подключается к БД. Так что свойства должны быть правильными. Я до сих пор не знаю, где проблема. Спасибо всем за чтение и ответы!

Редактировать: я использую xampp для БД

Второе редактирование: я удалил алине из файла БД. php файл

<?php
class db{
    //Properties
    private $dbhost = 'localhost';
    private $dbuser = 'root';
    private $dbpass = '';
    private $dbname = 'Connect';
    //Connect
    //create MYSQL connect string
    public function connect(){
        $mysql_connect_str = "mysql:host=$this->dbhost;dbname=$this->dbname";
        $dbConnection = new PDO($mysql_connect_str, $this->dbuser, $this->dbpass);
        //$dbConnection->setAttribute(PDO::ATTR_ERRMODE, POD::ERRMODE_EXCEPTION);
        return $dbConnection;
    }
}

Я удалил эту строку, и теперь она показывает выбранную таблицу. Но почему я должен удалить эту строку? Я следовал за руководством, и эта строка показана.

...