1

私はこのエラーが発生しています:

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

4 に答える 4

3

WHENmysql の予約語であるため、別の列名を使用するかWHEN、逆引用符で囲みます。

于 2012-11-30T10:44:19.793 に答える
2

Whenmysqlキーワードです。これを試してください

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

または、このキーワードを逆引用符で囲みます

SELECT id, IDClient, IDFond, Who, `When`, RDV..
于 2012-11-30T10:45:20.680 に答える
0

声明の引用符を閉じることは決してありません。

于 2012-11-30T16:30:01.687 に答える
0

のような列名の引用符を返してid試してみてください

于 2012-11-30T10:46:49.430 に答える