Mysql Symfony抛出错误1064您的SQL语法有错误

Mysql Symfony抛出错误1064您的SQL语法有错误,mysql,sql,symfony,symfony1,symfony-1.2,Mysql,Sql,Symfony,Symfony1,Symfony 1.2,我有一个名为evaluation\u symptom的模块,我正在尝试创建新的症状,但当我单击new(evaluation\u symptom/new)时,它抛出以下错误: 500 |内部服务器错误| proplexception[已包装: SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;请检查与您的SQL语法对应的手册 MySQL服务器版本,以便在附近使用正确的语法 '=评估_symptom.ID按评估_symptom.ORD排序 ASC,第1行的评估结果[u

我有一个名为evaluation\u symptom的模块,我正在尝试创建新的症状,但当我单击new(evaluation\u symptom/new)时,它抛出以下错误:

500 |内部服务器错误| proplexception[已包装: SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;请检查与您的SQL语法对应的手册 MySQL服务器版本,以便在附近使用正确的语法 '=评估_symptom.ID按评估_symptom.ORD排序 ASC,第1行的评估结果[u cause.ORD]

我研究了代码,发现所有问题都存在于名为getubferredremediesbysymmptomid评估症状AdminPeer函数中,特别是这一行$criteria->addJoin(self::ID,$ID)

public static function getInferredRemediesBySymptomId($id)
  {
    $criteria = new Criteria();
    $criteria->addSelectColumn("evaluation_remedy.ID");
    $criteria->addSelectColumn("evaluation_remedy.TITLE");

    $criteria->addJoin(self::ID, EvaluationSymptomCausePeer::EVALUATION_SYMPTOM_ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(EvaluationSymptomCausePeer::EVALUATION_CAUSE_ID, EvaluationCausePeer::ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(EvaluationCausePeer::ID, EvaluationCauseRemedyPeer::EVALUATION_CAUSE_ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(EvaluationCauseRemedyPeer::EVALUATION_REMEDY_ID, EvaluationRemedyPeer::ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(self::ID, $id);

    $exCriteria = $criteria->getNewCriterion(self::IS_ACTIVE, 1);
    $exCriteria->addOr($criteria->getNewCriterion(EvaluationCausePeer::IS_ACTIVE, 1));
    $criteria->add($exCriteria);
    //$criteria->addAscendingOrderByColumn(self::ORD);
    //$criteria->addAscendingOrderByColumn(EvaluationCausePeer::ORD);
    $criteria->addAscendingOrderByColumn(self::ORD)->addAscendingOrderByColumn(EvaluationCausePeer::ORD);
    $records = self::doSelectStmt($criteria)->fetchAll(PDO::FETCH_ASSOC);
    $data = array();
    foreach ($records as $key => $record) {
      $data[$record['ID']] = $record['TITLE'];
    }
    return $data;
  }
上述函数的ID从EvaluationSymptomAdminForm传递为:

$inferredRemedies = EvaluationSymptomAdminPeer::getInferredRemediesBySymptomId($this->object->getPrimaryKey());

打印整个查询并验证查询。如何验证@UmairShahYousafzai查询只有ID部分不起作用!当我注释这一行时,$criteria->addJoin(self::ID,$ID);一切都进行得很顺利,但当我将其添加回时,它不起作用。您需要沿着ID打印整个查询,然后亲自查看查询中的错误在哪里。检查将包含完整查询的symfony日志文件。