MySql语法错误 - 42000

时间:2012-11-30 10:41:55

标签: php mysql

我收到了这个错误:

Warning: PDO::query() [pdo.query]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'When, RDV, Comments FROM distributions WHERE IDFond = 1' at line 1 in /Applications/XAMPP/xamppfiles/htdocs/JG/DistributionManager.class.php on line 56

执行此代码时:

$Distribution_Manager->getListByFunds($Selected_Fond->id());

    foreach ($Distribution_Manager as $Distrib)
    {
        echo $Distrib->Comments();
    }

以下是相关功能:

  public function getListByFunds($FundID)
  {
    $Distribution = array();

    $q = $this->_db->query('SELECT id, IDClient, IDFond, Who, When, RDV, Comments FROM distributions WHERE IDFond = '.$FundID);

    while ($donnees = $q->fetch(PDO::FETCH_ASSOC))
    {
      $Distribution[] = new Distribution($donnees);
    }
    return $Distribution;
  }

应该是一个小错误,但我已经落后了将近50分钟! 在此先感谢您的帮助;)

4 个答案:

答案 0 :(得分:3)

WHENmysql reserved word,因此请尝试使用其他列名称或将WHEN括在反引号中。

答案 1 :(得分:2)

When是mysql关键字,试试这个

SELECT id, IDClient, IDFond, Who, When AS anything..

或将此关键字括在反引号

SELECT id, IDClient, IDFond, Who, `When`, RDV..

答案 2 :(得分:0)

id等列名称提供引号并尝试

答案 3 :(得分:0)

你永远不会在你的陈述中关闭你的报价。

相关问题