0

ルーティングに Slim Framework を使用して、ウェブショップ用のライブ チャットを構築しようとしています。

私のメッセージデータベーステーブルには、という名前の列があります

     message_key

これには、生成された md5 が含まれています。

ユーザーがチャットすることを決定するたびに、生成された md5 文字列を使用してこのテーブルにメッセージを投稿します。このようにして、同じ値を持つすべてのメッセージを返すことができます

    message_key

ルートを呼び出すと:

/api/msgs/60f0c8ce4733094b68af71c471cf1139

それは私にエラーをスローします:

{"error":{"text":SQLSTATE[42S22]: Column not found: 1054 Unknown column
 '60f0c8ce4733094b68af71c471cf1139' in 'where clause'}}

しかし、message_key列の値を数値に変更しても、エラーは発生しません。

    /api/msgs/7272

次に、きれいな JSON を返します。

これはどのように起こりますか?

さまざまな文字をルート パラメータとして使用する方法はありますか?

4

2 に答える 2

0

これに答えるには、より多くの情報が必要です。エラーから、少なくとも一部の時間はメッセージキーがSQLの列名として設定されていることが明らかです。

message_keyのセグメントを使用してルートを定義しましたか...'/api / msgs(/:message_key)'または単に'/ api / msgs'?

于 2013-01-27T00:27:06.710 に答える
0

このような問題が発生するときはいつでも、値ではなく列と一致させようとしていることを意味します。この場合、WHERE 句で VALUE をラップする必要があります。

 WHERE message_key = '$key';

このようにしようとする前に:

 WHERE message_key = $key;

...これにより、60f0c8ce4733094b68af71c471cf1139 という名前の列との一致を試みるクエリが生成されます

_したがって、常に VALUES または COLUMNS と一致しているかどうかを確認してください _

于 2013-01-27T21:42:07.720 に答える