Php 错误:";SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误&引用;。.env或PDO中的问题?

Php 错误:";SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误&引用;。.env或PDO中的问题?,php,sql,pdo,localhost,slim,Php,Sql,Pdo,Localhost,Slim,我正在修改其他人的代码,并得到一个 “SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法中的错误“错误” 我的第一个想法是我没有正确安装slim,但再次安装并没有任何区别。因此,问题可能出在.env文件或PDO中。有人能帮忙吗 PDO: .env: eventmodel的第一部分: declare(strict_types=1); namespace App\Model; use DateTime; class EventModel extends PdoMo

我正在修改其他人的代码,并得到一个

“SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法中的错误“错误”

我的第一个想法是我没有正确安装slim,但再次安装并没有任何区别。因此,问题可能出在.env文件或PDO中。有人能帮忙吗

PDO:

.env:

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();
 }    
欢迎提出任何建议。我不知道问题出在哪里

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

您的查询中有语法错误。这个错误相当直截了当。您的env文件很好。

在您的查询中,在
FROM

正确的查询:

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
查询中出现错误:

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
这里有一个问题:

e.maximum_amount_of_guests as guests, // this will generate error
               FROM event e
1064
清楚地告诉您,您的查询not.env文件中存在问题


您的代码中有问题,但不在。错误消息是一个很好的故障排除工具。在您的例子中,它表示在事件的
附近有语法错误。查看您的查询,FROM前面有一个额外的逗号。问题应作为typo@JayBlanchard:嗨,你好,是的,你是对的,它的打字错误在将来不会有帮助,我添加了一些与服务器错误和1064有关的额外内容。非常感谢!这花了我好几天的时间。我在查询中找不到错误。我是PHP新手,Google告诉我.env文件中应该有问题。代码之前有一个.env问题,这给了我一个模拟错误。因此产生了混乱。谢谢!
e.maximum_amount_of_guests as guests, // this will generate error
               FROM event e