-1

MySQL テーブルの「カテゴリ」に以下のデータがあります。

id    Name
-----------------
1     Books & CDs
2     Dress

テーブルから値を取得しようとすると、以下の SQL で正常に動作します。

SELECT * FROM `categories` WHERE `name` = 'Books & Cds';

しかし、PHP で使用すると、SQL エラーが発生します。

SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。5 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

これの本当の理由はどこにありますか?これをデバッグする方法は?

4

1 に答える 1

0

PHP コードで Category テーブルの行を検索する場合は、エンド ユーザーに使用する名前で検索するのではなく、使用するコードのテーブルに列を追加することをお勧めします。直面している潜在的な問題は、カテゴリの名前を変更したい場合、そのカテゴリを名前で参照しているコード内のすべての場所を見つけて、それも変更する必要があることです。ただし、テーブルが次のようになっているとします。

ID   code   name
1    BCDS   Books & CDs
2    DRS    Dress

次に、コードで「where code = 'BCDS'」のようなことを実行でき、そのカテゴリを「Books & CDs」、「CDs and Books」、またはその他の好きな名前にすることができます。

ここで、構文の問題を修正する限り、失敗したクエリを生成するために使用する PHP を投稿する必要があります。別の投稿者が言ったように、おそらく何かを間違ってエスケープしており、MySQL は取得していると思われるクエリを取得していません。

于 2013-02-18T14:57:22.147 に答える