Я исправляю чужой код и получаю
"SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть
ошибка в вашем синтаксисе SQL "ошибка.
Моей первой мыслью было, что я неправильно установил slim, но повторная установка не имела никакого значения. Так что, возможно, проблема в файле .env или PDO. Кто-нибудь может помочь?
PDO:
declare(strict_types=1);
namespace App\Model;
use PDO;
abstract class PdoModel
{
protected static $connection;
protected function getConnection() : PDO
{
// Singleton pattern to use just 1 DB connection for all database calls
if (!self::$connection) {
self::$connection = new PDO('mysql:host=' . getenv('DB_HOST') . ';dbname=' . getenv('DB_DATABASE'), getenv('DB_USERNAME'), getenv('DB_PASSWORD'));
self::$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}
return self::$connection;
}
}
.env:
DB_HOST=localhost
DB_DATABASE=exam
DB_USERNAME=root
DB_PASSWORD=
DB_PORT=3306
первая часть eventmodel:
declare(strict_types=1);
namespace App\Model;
use DateTime;
class EventModel extends PdoModel
{
public function getEvents() : array
{
$query = "SELECT e.id,e.name,e.description,e.event_manager_id,em.name as event_manager_name ,
e.company_name,DATE_FORMAT(datetime,'%d-%m-%Y') as date,DATE_FORMAT(datetime,'%H:%i') as time,
e.maximum_amount_of_guests as guests,
FROM event e LEFT JOIN event_manager em ON (em.id = e.event_manager_id) ORDER BY date DESC";
$statement = $this->getConnection()->prepare($query);
$statement->execute();
return $statement->fetchAll();
}
Любые предложения приветствуются. Я понятия не имею, в чем может быть проблема.