2011-10-20 4 views
0

私は、直列化されたオブジェクトをmysqlデータベースブロブに保存しています。パテを使ってmysqlブロブを表示

いくつかのテストオブジェクトを挿入してテーブルを表示しようとすると、たくさんのゴミと「PuTTYPuTTY」が何度か表示されます。

これは、文字エンコーディングや奇妙な文字を含むブロブと関係していると思います。

これは私のデータベースで問題が発生するかどうか、またはこれがデータを表示しているパテに問題があるかどうかを確認したいのですか? QuizTableの

説明:私は、テーブルの内容を表示しようとすると、私が見る何

+-------------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+-------------------------------------------------------------------------------------------------------------------+ 
| Field  | Type  | Collation   | Null | Key | Default | Extra   | Privileges      | Comment                           | 
+-------------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+-------------------------------------------------------------------------------------------------------------------+ 
| classId  | varchar(20) | latin1_swedish_ci | NO |  | NULL |    | select,insert,update,references | FK related to the ClassTable. This way each Class in the ClassTable is associated with its quiz in the QuizTable. | 
| quizId  | int(11)  | NULL    | NO | PRI | NULL | auto_increment | select,insert,update,references | This is the quiz number associated with the quiz.                 | 
| quizObject | blob  | NULL    | NO |  | NULL |    | select,insert,update,references | This is the actual quiz object.                     | 
| quizEnabled | tinyint(1) | NULL    | NO |  | NULL |    | select,insert,update,references |                             | 
+-------------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+-------------------------------------------------------------------------------------------------------------------+ 

select * from QuizTable; 

questionTextq ~ xp sq ~ w 
t q1a1t q1a2xt 1t q1sq ~  sq ~ w 
t q2a1t q2a2t q2a3xt 2t q2xt test3 |   1 | 
+-------------+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+ 
3 rows in set (0.00 sec) 

答えて

1

文字列だけでなく、ブロブに対してもhex関数を使用することができます。このようなクエリを実行できます。

Select HEX(quizObject) From QuizTable Where.... 
+0

これは閲覧の問題を助けました。ありがとう – prolink007

0

パテが、それは、端末制御文字列であると考えて何に反応していますあなたの出力ストリームに。これらの文字列を使用すると、リモートホストは、タイトルの設定、カーソルの位置付け、画面の消去など、画面全体を再描画せずにローカル端末に関する何かを変更することができます。

それは、 'このようにコード化されたものは、多くのバイナリデータがこれらの文字を送信することになります。

この反応はバイナリファイルでも起こります。

blobは、あなたが持っている文字エンコーディング設定を完全に無視します。これは、イメージやzipファイルなどのバイナリオブジェクトを格納するためのものです。

このフィールドにはテキストのみが含まれている場合は、テキストフィールドを使用することをおすすめします。

+0

データベースに入れる前にオブジェクトをシリアル化していますが、シリアル化されたオブジェクトを正しく保持できるmysqlの唯一のデータ型ではありませんか? – prolink007

関連する問題