0

これは簡単なことですが、本当に面倒です。

なぜこれが機能するのですか:

    $query = $pdo->prepare('SELECT index FROM active_notifications WHERE direction = ">"');

そしてこれはうまくいきます:

    $query = $pdo->prepare('SELECT trigger_price FROM active_notifications WHERE direction = ">"');

しかし、これはいけません!:

    $query = $pdo->prepare('SELECT trigger_price, index FROM active_notifications WHERE direction = ">"');

私はこのゴミを手に入れます:

データベースに接続できませんでした。理由: 例外 'PDOException' とメッセージ 'SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。

4

2 に答える 2

2

列 (またはテーブル、スキーマ、または識別子を必要とするもの) の名前として「index」などの予約語を使用しないでください。

おそらく、データベースは最初のステートメントのコンテキストから列の名前として「index」を推測できますが、複数の列を選択するとあいまいになります。

とにかく、それは本当の問題ではありません。'index' のような予約語を識別子として使用したくない場合、そうしないと奇妙なことが起こります。列の名前を変更してみてください。

于 2013-10-08T15:56:40.093 に答える